Qt控件属性及常用控件详解
Qt控件属性及常用控件详解
Qt框架提供了丰富的内置控件,如按钮、文本框、单选按钮、复选按钮和下拉框等,这些控件具有多种属性,可以满足各种界面设计需求。本文将详细介绍Qt中常用控件的核心属性及其使用方法。
1. 常用控件属性
1.1 enabled
enabled属性用于控制控件是否可用。通过两个按钮可以实现一个按钮控制另一个按钮的可用状态。
void Widget::on_pushButton_clicked()
{
qDebug()<<"执行槽函数";
}
void Widget::on_pushButton_2_clicked()
{
bool enable=ui->pushButton->isEnabled();
if(enable){
ui->pushButton->setEnabled(false);
}else{
ui->pushButton->setEnabled(true);
}
}
1.2 geometry
geometry属性用于获取和设置控件的位置和尺寸。其常用API包括geometry()、setGeometry(QRect)和setGeometry(int x, int y, int width, int height)。
1.2.1 geometry示例:调整目标的大小和位置
通过点击上下左右四个按钮,可以调整一个目标的大小和位置。
1.2.2 geometry示例:无法拒绝的表白
当女生点击拒绝按钮时,该按钮会随机移动位置,增加趣味性。
void Widget::on_pushButton_accept_clicked()
{
ui->lineEdit->setText("爱死你了宝贝,mua~亲一个!");
}
void Widget::on_pushButton_reject_clicked()//点击,鼠标点了之后松开生效
{
// int width=this->geometry().width();
// int height=this->geometry().height();
// //获取width和height并取模,保证其位置不会超出窗口范围!
// int x=rand()%width;
// int y=rand()%height;
// ui->pushButton_reject->move(x,y);
}
void Widget::on_pushButton_reject_pressed()//点击,点下鼠标就生效,不需要松开
{
int width=this->geometry().width();
int height=this->geometry().height();
//获取width和height并取模,保证其位置不会超出窗口范围!
int x=rand()%width;
int y=rand()%height;
ui->pushButton_reject->move(x,y);
}
1.3 window frame窗口框架
frameGeometry()返回包含窗口框架的QRect对象,而geometry()不包含窗口框架。setGeometry()设置窗口位置和尺寸时也不包含窗口框架。
1.4 windowTitle
windowTitle属性用于设置和获取窗口标题。常用API包括windowTitle()和setWindowTitle(const QString& title)。
1.5 windowIcon
windowIcon属性用于设置和获取窗口图标。常用API包括windowIcon()和setWindowIcon(const QIcon& icon)。为了确保图标资源在不同环境下都能正确加载,推荐使用qrc机制。
1.6 windowOpacity
windowOpacity属性用于设置窗口的透明度,取值范围为0.0(全透明)到1.0(完全不透明)。常用API包括windowOpacity()和setWindowOpacity(float n)。
1.7 cursor
cursor属性用于改变鼠标光标的样式。常用API包括cursor()、setCursor(const QCursor& cursor)和QGuiApplication::setOverrideCursor(const QCursor& cursor)。Qt允许通过自定义图片设置光标,可以在阿里巴巴矢量图标库中免费下载大量鼠标图标。
1.8 font
font属性用于设置字体相关属性,包括字体家族、大小、粗细、倾斜等。常用API包括font()和setFont(const QFont& font)。
1.9 toolTip
toolTip属性用于设置鼠标悬停时的提示信息。常用API包括setToolTip和setToolTipDuration。
1.10 focusPolicy
focusPolicy属性用于设置控件获取焦点的策略。常用API包括focusPolicy()和setFocusPolicy(Qt::FocusPolicy policy)。
1.11 styleSheet
styleSheet属性用于通过CSS设置控件样式。支持RGB颜色和传统颜色名称。
2. qrc文件
qrc文件是一种资源文件,可以在Qt项目编译时将图片等资源数据编译到exe文件中,避免了运行时查找资源文件的问题。
3. 在styleSheet中颜色的应用及知识
可以通过RGB颜色或传统颜色名称设置控件样式。
this->setStyleSheet("background-color:rgb(240,240,240)");//rgb方式
this->setStyleSheet("background-color:white");//传统方式