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
Forum Update on Monday, May 27th 2025

Heavy UI creation with progress displaying

Scheduled Pinned Locked Moved Solved General and Desktop
4 Posts 3 Posters 548 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.
  • M Offline
    M Offline
    Mahoney
    wrote on 20 May 2016, 11:46 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 20 May 2016, 12:26
    0
    • Q Offline
      Q Offline
      Q139
      wrote on 20 May 2016, 12:17 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
      • M Mahoney
        20 May 2016, 11:46

        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 20 May 2016, 12:26 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.

        M 1 Reply Last reply 20 May 2016, 12:31
        2
        • ? A Former User
          20 May 2016, 12:26

          @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.

          M Offline
          M Offline
          Mahoney
          wrote on 20 May 2016, 12:31 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

          1/4

          20 May 2016, 11:46

          • Login

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