Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Heavy UI creation with progress displaying
QtWS25 Last Chance

Heavy UI creation with progress displaying

Scheduled Pinned Locked Moved Solved General and Desktop
4 Posts 3 Posters 537 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • MahoneyM Offline
    MahoneyM Offline
    Mahoney
    wrote on last edited by
    #1

    Hi all.

    In my application I am constructing heavy UI: a wizard with a lot of controls on many pages. This process involves DB access and a lot of other work. All this eventually causes GUI to freeze for quite long moments.
    The question is how to show QProgressDialog during this process? I definitely need a second thread for widgets creation and preparation, but it is prohibited. How to workaround it?

    ? 1 Reply Last reply
    0
    • Q Offline
      Q Offline
      Q139
      wrote on last edited by Q139
      #2

      You could call QApplication::processevents in while loop and use timer to execute it , while loops in same thread as ui block qt event handler and ui wont refresh.
      But cannot use qtimer as it work with event handler.

      1 Reply Last reply
      0
      • MahoneyM Mahoney

        Hi all.

        In my application I am constructing heavy UI: a wizard with a lot of controls on many pages. This process involves DB access and a lot of other work. All this eventually causes GUI to freeze for quite long moments.
        The question is how to show QProgressDialog during this process? I definitely need a second thread for widgets creation and preparation, but it is prohibited. How to workaround it?

        ? Offline
        ? Offline
        A Former User
        wrote on last edited by
        #3

        @Mahoney Hi! You could use two processes: One "loader" that shows a simple GUI with progress status during startup and a second process that is your actual wizzard. If you use QProcess for this then you'll have an easy to use communication channel between the processes for sending progress information.

        MahoneyM 1 Reply Last reply
        2
        • ? A Former User

          @Mahoney Hi! You could use two processes: One "loader" that shows a simple GUI with progress status during startup and a second process that is your actual wizzard. If you use QProcess for this then you'll have an easy to use communication channel between the processes for sending progress information.

          MahoneyM Offline
          MahoneyM Offline
          Mahoney
          wrote on last edited by
          #4

          @Wieland Well, that's a good idea. I'll try it out. BTW I even don't need interprocess data exchange, since I want to show progress bar in "marquee" mode.

          1 Reply Last reply
          0

          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved