官术网_书友最值得收藏!

  • Qt編程快速入門(mén)
  • 鮑忠貴
  • 508字
  • 2021-03-19 17:41:46

3.2 在Qt Designer中建立信號(hào)和槽

第2章我們已經(jīng)通過(guò)Qt Designer學(xué)習(xí)了對(duì)菜單等動(dòng)作信號(hào)的響應(yīng),在Qt Designer中,右擊鼠標(biāo),在彈出的快捷菜單中選擇go to slot命令可以很快在主窗口中建立對(duì)信號(hào)的響應(yīng)。在5.2.1節(jié),我們還將介紹利用可視化方法定義信號(hào)和槽的關(guān)聯(lián)。

本節(jié)我們繼續(xù)用Qt Designer使用Qt預(yù)定義的信號(hào)和槽。下面的例子,建立整數(shù)旋轉(zhuǎn)框和滑動(dòng)條間的關(guān)聯(lián),使得數(shù)據(jù)的變化能夠聯(lián)動(dòng)。

(1)新建一個(gè)工程ch3,在主窗口中添加一個(gè)整數(shù)旋轉(zhuǎn)框SpinBox和一個(gè)水平方向的滑動(dòng)條horizontalSlider,在信號(hào)和槽編輯面板中,單擊加號(hào),選擇發(fā)送者h(yuǎn)orizontalSlider,在信號(hào)中選擇valueChanged,選擇spinBox為接收方,槽中的操作為setValue;用同樣的方法,建立spinBox到horizontalSlider的連接,如圖3-2所示。

圖3-2 信號(hào)和槽關(guān)聯(lián)的示意程序設(shè)計(jì)界面

(2)選中SpinBox后右擊,在彈出的快捷菜單中選擇go to slot命令,在出現(xiàn)的對(duì)話框中,選擇valueChanged(QString)信號(hào),如圖3-3所示。

圖3-3 選擇spinBox的信號(hào)響應(yīng)槽

(3)添加以下代碼,在狀態(tài)欄顯示數(shù)值。

void MainWindow::on_spinBox_valueChanged(QString)
{
    ui->statusBar->showMessage(QString);
}

(4)上述過(guò)程中,Qt根據(jù)設(shè)計(jì)的Form文件,在ui_mainwindow.h中自動(dòng)添加了關(guān)聯(lián)代碼。

void setupUi(QMainWindow *MainWindow)
{
    …
    QObject::connect(horizontalSlider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));
    QObject::connect(spinBox, SIGNAL(valueChanged(int)), horizontalSlider, SLOT(setValue(int)));
    …
    } // setupUi

(5)編譯運(yùn)行,如圖3-4所示。用鼠標(biāo)分別改變整數(shù)旋轉(zhuǎn)框SpinBox和滑動(dòng)條horizontalSliderr,會(huì)發(fā)現(xiàn)兩者建立了聯(lián)動(dòng)的關(guān)系,同時(shí),整數(shù)旋轉(zhuǎn)框SpinBox建立了和主窗口的關(guān)聯(lián),在狀態(tài)條顯示數(shù)值。

圖3-4 信號(hào)和槽的演示

主站蜘蛛池模板: 遂溪县| 诏安县| 沙田区| 沅陵县| 原平市| 遵义市| 垫江县| 宜宾县| 武威市| 图们市| 桂平市| 东台市| 漠河县| 南郑县| 佛冈县| 太保市| 奈曼旗| 保德县| 织金县| 台湾省| 南通市| 左贡县| 宿松县| 江口县| 绍兴市| 馆陶县| 永吉县| 夏邑县| 龙井市| 平舆县| 衡阳市| 剑河县| 屯留县| 扶沟县| 沂水县| 龙山县| 女性| 噶尔县| 岳普湖县| 江口县| 团风县|