QEventLoop會卡住的解決方法

2021-08-04 10:42:51 字數 681 閱讀 3353

問題是這樣的:

在乙個執行緒中有下面一段**

qeventloop loop

;qobject::connect(this, signal(playstopped()), &loop, slot(quit()));

loop.exec();

在主介面的執行緒中,hssettings是乙個qdialog類

hssettings* settings = new hsettings(this);

settings->exec();

delete settings;

當這個非模態的介面彈出時,上面執行緒中的qeventloop loop;就不會quit, 即使收到訊號signal(playstopped()), 也不會quit, 一直卡在loop.exec();這裡。

為了解決這樣的現象,避免執行緒中的eventloop卡住,hssettings介面的顯示換成如下:

hssettings* settings = new hsettings(this);

settings->open();

qobject::connect(settings, &qdialog::finished, [settings, this](int result) );

這樣就解決了

U盤複製檔案到最後5秒會卡住怎麼辦解決

現在的u盤容量已經非常大了,一般都有16g以上,為了能放單檔案大於4g的資料大多數時候我們都是把u盤格式化為ntfs格式的,所以會出現不管是大檔案還是小檔案,當你往u盤裡複製檔案或者使用傳送到u盤功能的時候會出現乙個怪現象,那就是不管u盤速度如何,都會在前部分拷貝的時候速度非常快,基本上達到u盤的正...

QEventLoop 的使用兩例

qt 是事件驅動的,所以當你用qt的時候,幾乎時時刻刻和 qeventloop 打交道 只是你可能沒有意識到 qdialog exec qthread exec qdrag exec qmenu exec 在前面列出的這些常見函式的背後,都有各自的qeventloop,可能是我們很少有機會想到自己顯...

QEventLoop 的使用兩例

qt 是事件驅動的,所以當你用qt的時候,幾乎時時刻刻和 qeventloop 打交道 只是你可能沒有意識到 qdialog exec qthread exec qdrag exec qmenu exec 在前面列出的這些常見函式的背後,都有各自的qeventloop,可能是我們很少有機會想到自己顯...