基本概述
Qt中的各种控件都是继承自QWidget类
QWidget中有很多属性,但是我们没有必要全部掌握,只需要掌握一些常用的就行(所有的属性都能在QtAssiant中找到)
enabled属性
API | 说明 |
isEnabled() | 获取到控件的可用状态 |
setEnabled() | 设置控件是否可用,true表示可用,false表示禁用 |
- 所谓“禁用” 指的是该控件不能接受任何用户的输入事件,并且外观上往往是灰色的
- 如果一个 widget被禁用,则该Widget的子元素也被禁用
代码示例
这里会打印"handle",但是却没有
geometry属性
API(部分) | 说明 |
geometry() | 获取到控件的位置和尺寸,返回结果是一个 QRect,包含了x,y,width,height,其中x,y是左上角的坐标 |
setGeometry(QRect) setGeometry(int x,int y,int width,int height) | 设置控件的位置和尺寸,可以直接设置一个 QRect,也可以分四个属性设置 |
代码示例:
现在我将通过4个按钮来控制一个按钮的位置
void Widget::on_pushButton_up_clicked()
{
QRect rect = ui->pushButton_2->geometry ();
ui->pushButton_2->setGeometry (rect.x(),rect.y()-5,rect.width (),rect.height ());
}
void Widget::on_pushButton_down_clicked()
{
QRect rect = ui->pushButton_2->geometry ();
ui->pushButton_2->setGeometry (rect.x(),rect.y()+5,rect.width (),rect.height ());
}
void Widget::on_pushButton_left_clicked()
{
QRect rect = ui->pushButton_2->geometry ();
ui->pushButton_2->setGeometry (rect.x()-5,rect.y(),rect.width (),rect.height ());
}
void Widget::on_pushButton_right_clicked()
{
QRect rect = ui->pushButton_2->geometry ();
ui->pushButton_2->setGeometry (rect.x()+5,rect.y(),rect.width (),rect.height ());
}
WindowTitle属性
API | 说明 |
windowTitle | 获取到控件的窗口标题 |
setWindowTitle(const QString& title | 设置控件的窗口标题 |
注意!上述设置操作只有在顶层widget才有效
这个过于简单,没必要演示
windowIcon属性
API | 说明 |
windowIcon() | 获取到控件的窗口图标,返回 QIcon 对象 |
setWindowIcon(const QIcon& icon) | 设置控件的窗口图标 |
什么是窗口图标?简单来说就是项目运行时,最左上角的图标就是窗口图标,或者是任务栏的图片
(PS:这两个API都只能用在顶层Widget)
windowOpacity属性
API | 说明 |
windowOpcity() | 获取到控件的不透明数值,返回float,取值为0.0->1.0其中0.0表示全透明,1.0表示完全不透明 |
setWindowOpcity( float n) | 设置控件的不透明数值 |
代码示例
cursor属性
API | 说明 |
cursor() | 获取到当前 widget 的 cursor 属性,返回 Qcursor 对象。 当鼠标悬停在该 Widget 上时,就会显示出对应的形状 |
setCursor(const QCursor& cursor) | 设置该 Widget 光标的形状,仅在鼠标停留在该 Widget 上时生效。 |
QGuiApplication::setOverrideCursor(const QCursor& cursor) | 设置全局光标的形状,对整个程序中所有 Widget 都会生效,覆盖 上面的 setCursor 设置的内容 |
代码示例:在Qt 中设置按钮的光标
(1)在界面中创建一个按钮
方法一:
直接在widget.ui里面设置
方式二:
在代码中设置
这个效果不好截图,直接敲代码就行
自定义光标
Qt允许通过自定义的图片来设置光标
font属性
API | 说明 |
font() | 获取当前widget的字体信息,返回 QFont 对象 |
setFont(const QFont& font) | 设置当前widget的字体信息 |
关于QFont
属性 | 说明 |
family | 字体家族,比如“楷体”,“宋体”,“微软雅黑”等。 |
pointSize | 字体大小 |
weight | 字体粗细,以数组方式表现粗细程度([0,99]),数值越大,越粗 |
bold | 是否加粗,如果是true,相当于 weight 的75,反之则为50。 |
italic | 是否倾斜 |
underline | 是否带有下划线 |
strikeOut | 是否带有删除 |
过于简单,没有必要演示
toolTip属性
API | 说明 |
setToolTip() | 设置 toolTip. 鼠标悬停在该 widget 上时会有提示说明. |
setToolTipDuring() | 设置 toolTip 提示的时间.单位ms. 时间到后 toolTip 自动消失 |
toolTip只是给用户看的.在代码中一般不需要获取到 toolTip.
focusPolicy属性
设置控件获取到焦点的策略,比如某个控件能否用鼠标选中或者通过 tab 键选中
API | 说明 |
focusPolicy() | 获取该widget的focusPolicy,返回Qt::FocusPolicy |
setFocusPolicy(Qt::FocusPolicy policy) | 设置widget的focusPolicy. |
这里就可以直接修改
styleSheet属性
通过 CSS 设置 Widget 的样式
和 CSS 类似,通过键值对的格式,键和值之间使用 :分割 键值对和键值对之间时候 ;分隔
也可以通过 setStyleSheet() 设置,里面使用一个字符语句就行