亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

QT ui 帶來麻煩

發布時間:2020-07-27 15:56:09 來源:網絡 閱讀:325 作者:WZM3558862 欄目:開發技術

setupUi()引起的麻煩

 

由.ui文件生成的類的構造函數里都有一個setupUi(this)。這個函數的作用是對界面進行初始化,它按照我們在Qt設計器里設計的樣子把窗體畫出來,把我們在Qt設計器里面定義的信號和槽建立起來。也可以說,setupUi 是我們畫界面和寫程序之間的橋梁。
但有一點需要注意的是,setupUi在執行的時候會觸發界面上的事件。如果忽視了這點,那可能就會遇到一些莫明其妙的麻煩。
我曾在一個類的構造函數里這樣寫:

    setupUi(this);    //系統自動生成的
    bool flag=false;    //對我自己定義的變量初始化
    ...

界面上有一個tabWidget,我定義了一個槽來接收tabWidget的tabClicked()信號,在該槽里用到flag變量。
調試程序中發現此類不穩定,經常會在類生成時突然跳出,什么提示也沒有。
起初我以為類的構造函數應該是最先執行的,構造完成之后這個類才開始正式運轉,發生各種信號和槽的關系。這么考慮起來,這個類沒有任何理由不穩定。可是從現象上看,一定是有某個地方有內存操作的異常,這個異常引起了程序的不可靠。
問題出面哪里?
我懷疑過開發環境,于是從QDevelop環境遷移到了QCreator,不管用。懷疑過操作平臺,換了幾個Linux的發行版,也不好使。
后來在QCreator的調試模式下運行,在系統崩潰后查看調用棧時發現,類生成的過程里,居然觸發了好多窗體上的事件!
這一定是setupUi運行時發生的事。
因為在類的構造函數里我把自己定義的變量初始化都放到了setupUi之后,這樣,在窗體事件時用到了一些未初始化的變量,從而引起系統不可靠。
后來修改了類的構造函數,把setupUi移到變量初始化的后面,于是問題全部解決


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

qt
AI

陇川县| 郯城县| 滕州市| 乌兰县| 牙克石市| 上思县| 内乡县| 承德市| 尖扎县| 奉节县| 盐边县| 十堰市| 遂溪县| 司法| 工布江达县| 贵溪市| 富川| 阜城县| 平远县| 楚雄市| 万全县| 永丰县| 泌阳县| 丘北县| 普安县| 吴旗县| 江油市| 毕节市| 贵阳市| 治县。| 老河口市| 龙南县| 鸡西市| 平遥县| 手游| 古蔺县| 江西省| 康保县| 乡城县| 慈溪市| 乐业县|