Qt Creater中有6种Buttons控件,比Qt Designer 多了Command Link Button 和Button Box两种控件,其余4中类型的控件分别是QPushButton、QToolButton、QCheckBox、。它们的基本用法和Qt Designer 类似,因为它们使用的类基本相同,属性和成员函数没有太多变化,具体的细节希望各位看官查看相关文档或百度,这里就不再赘述了!
下面直接贴代码,在这个示例中,我们建立一个标准的Qt Gui Application项目,它包含了菜单栏、工具栏和状态栏,但是在这里我们不需要它们,所以就把它们删除,运用前面讲的布局知识,将设计界面改成下述样式即可!
示例功能说明:
×单击选中一个RadioButton时,Label显示选中的RadioButton;
×单击选中一个CheckBox时,Label显示当前所有选中的CheckBox;
×单击CountCheckBox按钮时,统计当前所有选中的CheckBox,Label显示氮气所有选中的CheckBox。
在这里我们使用Qt自动生成的槽函数,不要写信号与槽函数的映射,(方法:右键单击你想添加槽的控件,选中Go to slot,选择槽函数所对应的信号函数,确定后就会产生槽函数的声明和定义框架)
右击控件radioButton,选中“Go go solt”选项,在信号窗口中选择信号如下图所示:
然后只需要填充槽函数即可!
按照同样的方法将其余几个控件都添加上对应的槽,项目创建及对应的控件属性、信号、槽函数编译完成之后,接下来对相应的文件进行编辑,示例代码如下所示:
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void displayCheckBox();
private slots:
void on_radioButton_clicked();
void on_radioButton_2_clicked();
void on_radioButton_3_clicked();
void on_checkBox_clicked();
void on_checkBox_2_clicked();
void on_checkBox_3_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::displayCheckBox()
{
QString str;
str = "";
if(ui->checkBox->isChecked())
{
str += "CheckBox1 is Checked!";
}
if(ui->checkBox_2->isChecked())
{
str += "CheckBox2 is Checked!";
}
if(ui->checkBox_3->isChecked())
{
str += "CheckBox3 is Checked!";
}
ui->label_2->setText(str);
}
void MainWindow::on_radioButton_clicked()
{
ui->radioButton->setChecked(true);
ui->label->setText("adioButton1 is checked!");
}
void MainWindow::on_radioButton_2_clicked()
{
ui->radioButton_2->setChecked(true);
ui->label->setText("adioButton2 is checked!");
}
void MainWindow::on_radioButton_3_clicked()
{
ui->radioButton_3->setChecked(true);
ui->label->setText("adioButton3 is checked!");
}
void MainWindow::on_checkBox_clicked()
{
if(ui->checkBox->isChecked())
{
this->displayCheckBox();
}
else
{
this->displayCheckBox();
}
}
void MainWindow::on_checkBox_2_clicked()
{
if(ui->checkBox_2->isChecked())
{
this->displayCheckBox();
}
else
{
this->displayCheckBox();
}
}
void MainWindow::on_checkBox_3_clicked()
{
if(ui->checkBox_3->isChecked())
{
this->displayCheckBox();
}
else
{
this->displayCheckBox();
}
}
main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
运行结果如下所示:
好了,今天就到这吧,我还要赶紧复习,快要考试了,好忙的说呀!
对了,各位Osecers们,如果你们看到我讲的有不对的地方,希望能够指出,小弟我这里先谢过了,如果有人不懂可以在我的博客里留言我等你哦!O(∩_∩)O~!