QT學習筆記

2021-09-13 00:11:25 字數 1244 閱讀 2669

1,訊號與槽要對應起來:

例:qspinbox *spinbox = new qspinbox(&window);

qslider *slider = new qslider(qt::horizontal, &window);

以上以上的控制項spinbox和slider的qspinbox 就是只能輸入數字的輸入框,並且帶有上下箭頭的步進按鈕。qslider 則是帶有滑塊的滑竿。

qobject::connect(slider, &qslider::valuechanged, spinbox, &qspinbox::setvalue);

void (qspinbox:: *spinboxsignal)(int) = &qspinbox::valuechanged;

qobject::connect(spinbox, spinboxsignal, slider, &qslider::setvalue);

我們要對其進行雙向繫結。先用connect()函式,但是不能使用:

qobject::connect(spinbox, &qspinbox::valuechanged, slider, &qslider::setvalue)

這樣會報錯,檢視報錯資訊是說, qspinbox::valuechanged 是乙個 overloaded 的函式,檢視qt文件發現qspinbox有兩個signal函式

當我們使用 &qspinbox::valuechanged 取函式指標時,編譯器不知道應該取哪乙個函式(記住前面我們介紹過的,經過 moc 預處理後,signal 也是乙個普通的函式。)的位址,因此報錯。

解決的方法很簡單,編譯器不是不能確定哪乙個函式嗎?那麼我們就顯式指定乙個函式。方法就是,我們建立乙個函式指標,這個函式指標引數指定為 int:

void (qspinbox:: *spinboxsignal)(int) = &qspinbox::valuechanged;

然後我們將這個函式指標作為 signal,與 qslider 的函式連線:

qobject::connect(spinbox, spinboxsignal, slider, &qslider::setvalue);

2.

setshortcuts()函式是新增快捷鍵 setstatustip()函式是在狀態列新增提示語
例:

openaction->setshortcuts(qkeysequence::open);

openaction->setstatustip(tr("open an existing file"));

Qt學習筆記

1.參考資料 1 2 3 4 5 6 2.faq 2.1.qt creator 2.1.1.xp下用qt creator編譯自帶例子mdi sdi 當不勾選projects build settings build environment的 clear system environment 時,編譯...

QT學習筆記

1.在windows下配置好qt的環境變數以後,用cmd開始編譯,qmake project qmake hello.pro mingw32 make 結果出現錯誤 include 問題已經解決了,主要是 故而只需在.pro檔案中加入 greaterthan qt major version,4 q...

Qt 學習筆記

常用控制項對應類 窗體 qwidget 水平布局 qhboxlayout 豎直布局 qvboxlayout 網格布局 qgridlayout 按鈕 qpushbutton 標籤 靜態文字框 qlabel qlineedit label new qlabel tr find what lineedit...