Qpushbutton按钮
1、代码生成pushbutton
QPushButton * btn = new QPushBuuton("PushBuuton",this);
void setText(const QString &text) | 设置显示的文字 |
---|---|
void setIcon(const QIcon &icon) | 设置图标 |
void setShortcut(const QKeySequence &key) | 设置快捷键 |
void setCheckable(bool) | 设置是否能够选中 |
void setChecked(bool) | 设置是否选中 |
void setFont(const QFont &) | 设置字体 |
void setEnabled(bool) | 设置是否能按下 |
void setAutoDefault(bool) | 当用户按下 Enter 回车键时,是否触发点击按钮的事件。 |
void setAutoExclusive(bool) | 此属性保存是否启用了自动独占 |
2、设置pushbutton的checkable属性
ui->LidarStartBt->setCheckable(true);
然后pushbutton槽函数就有bool checked参数。
/*按钮槽函数*/
void Widget::on_pushButtonPortSwitch_clicked(bool checked)
{
if(checked)
{
ui->pushButtonPortSwitch->setText("close");
}
else
{
ui->pushButtonPortSwitch->setText("open");
}
}
QGridLayout网格布局控件
1、控件布局
ui->gridLayout->addWidget(ui->pushButton, 0, 0);
ui->gridLayout->addWidget(ui->pushButton_2, 0, 1);
ui->gridLayout->addWidget(ui->pushButton_3, 0, 2);
ui->gridLayout->addWidget(ui->pushButton_4, 0, 3);
ui->gridLayout->addWidget(ui->pushButton_5, 0, 4);
ui->gridLayout->addWidget(ui->pushButton_6, 1, 0, 1, 2);
ui->gridLayout->addWidget(ui->pushButton_7, 1, 2, 1, 1);
ui->gridLayout->addWidget(ui->pushButton_8, 1, 3, 1, 2);
ui->gridLayout->addWidget(ui->pushButton_9, 2, 0);
ui->gridLayout->addWidget(ui->pushButton_10, 2, 3);
ui->pushButton->setText("获取行");
ui->pushButton_2->setText("获取列");
ui->pushButton_3->setText("某行伸缩系数");
ui->pushButton_4->setText("某列伸缩系数");
ui->pushButton_5->setText("某列最小宽度");
ui->pushButton_6->setText("某行最小宽度");
ui->pushButton_7->setText("总单元格数");
ui->pushButton_8->setText("移除布局条目");
ui->pushButton_9->setText("移动布局条目");
2、获取行
qDebug() << "获取行:" << ui->gridLayout->rowCount();
3、获取列
qDebug() << "获取列:" << ui->gridLayout->columnCount();
4、某行伸缩系数
ui->gridLayout->setColumnStretch(0, 1);
5、某列伸缩系数
ui->gridLayout->setRowStretch(0, 2);
6、某列最小宽度
ui->gridLayout->setColumnMinimumWidth(0,5);
7、某列最小宽度
ui->gridLayout->setRowMinimumHeight(0,5);
8、总单元格数
qDebug() << "总单元格数:" << ui->gridLayout->count();
setStyleSheet
btn1->setStyleSheet("QPushButton{color:red}"); //设定前景颜色,就是字体颜色
btn1->setStyleSheet("QPushButton{background:yellow}"); //设定背景颜色为红色
btn1->setStyleSheet("QPushButton{color:red;background:yellow}");
第一个代码只能显示黄色背景,第二个确实红色字体,黄色背景。所以对于同一个部件,要在同一个setStyleSheet(…)中完全写出来,否则对于该部件来讲,只有最后一个setStyleSheet(…)起作用。
QPushButton,QToolButton的“按下”三态贴图,QPushButton为例:
setStyleSheet("QPushButton:hover{border-image:url(:/images/ui_design/1.png);} \ QPushButton:pressed{border-image:url(:/images/ui_design/2.png);} \
QPushButton{border-image:url(:/images/ui_design/3.png);}");