91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

鹤庆县| 万载县| 祁门县| 庐江县| 利川市| 茌平县| 和龙市| 甘南县| 万荣县| 萨迦县| 太康县| 屏边| 惠东县| 平潭县| 小金县| 郓城县| 隆子县| 岳西县| 梧州市| 黄大仙区| 涡阳县| 老河口市| 米林县| 新竹市| 贡嘎县| 河北省| 当涂县| 五河县| 柳江县| 洛阳市| 邵阳县| 疏附县| 子长县| 元朗区| 西充县| 郓城县| 友谊县| 阿图什市| 淅川县| 灵石县| 元氏县|