Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Polish
  4. Prawdopodobnie zła logika programu
Forum Updated to NodeBB v4.3 + New Features

Prawdopodobnie zła logika programu

Scheduled Pinned Locked Moved Solved Polish
2 Posts 2 Posters 791 Views 1 Watching
  • 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.
  • D Offline
    D Offline
    damian28102000
    wrote on last edited by
    #1

    Witam, mam problem wynikający jak mi się ze złej struktury napisanego przeze mnie programu.

    Ustawiłem za pomocą connect, aby po wciśnięciu dochodziło do funkcji, która zajmuje zawsze ponad minutę (analiza zewnętrznych plików). Niestety następstwem tego jest to, że program całkowicie "zamraża się", co przeszkadza m.in. na wyświetlanie jakichkolwiek komunikatów np. na status barze.

    Macie jakieś pomysły jak to rozwiązać?

    1 Reply Last reply
    0
    • Chris KawaC Offline
      Chris KawaC Offline
      Chris Kawa
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Cześć. Od tego dokładnie są wątki. Długo trwającą funkcję uruchom na innym wątku a na jej końcu wyemituj sygnał do głównego wątku z wynikiem. Jeśli nie chcesz wysyłać sygnału z tamtej funkcji to możesz też utworzyć QFutureWatcher i podpiąć się do jego sygnału finished. Przykład znajdziesz tutaj: QFutureWatcher.

      Jeśli chcesz pokazać np. pasek postępu to możesz również z tej funkcji na innym wątku emitować sygnał z procentem a na głównym wątku podpiąć się do niego i aktualizować wartość paska.

      1 Reply Last reply
      2

      • Login

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