1 . label 等widget 字体颜色设计 : 属性列表->stylesheet(样式表) 可以设置 字体大小 颜色 背景颜色 被选中的颜色(这个好像不可以) 获取label 内容 lbl->text(); 设置label文字水平居中 属性-》alignment->点开->水平的->选择center
label 灰色提示文字的设置:inputMethodHints ->imhHindtext
2. 布局 可以通过qt creator 上面窗口选择 直接点击布局。
3. sizePolicy 尺寸策略 决定了在布局后 拉伸效果。 注意:加入布局后 控件自身的尺寸不再由自己决定,而由布局(如垂直布局)决定。
4.信号槽的建立:
方法1: connect函数 例如
谁(产生者), 发出了什么信号 (信号) 谁 (接收者) 执行什么操作(槽函数)
connect(this->ui->actionAbout,SIGNAL(triggered(bool)),t_aboutDialog,SLOT(show()));
方法2:
//建立信号槽关系的表示方法,按一定格式写槽函数就可以 例如函数 on_bt_FactoryTest_clicked
选中控件-》右击->转到槽函数,自动生产相应的槽函数。on_bt_FactoryTest_clicked
对于菜单项action , 无法直接右击action -》转到槽函数的方式 自动生成槽函数。但是可以在界面下方,类似下图
选中actionAbout ->右击->转到槽函数。
方法3: 普通控件比如QpusButton 在ui 界面下方也可以 通过 如下图所示 建立信号槽的关系。但是此种方法有一个局限
就是 槽函数必须是系统预定义的槽函数,而不能是自己定义的。
5. 对mainwindow 设置最小化按钮和关闭按钮 以及禁止窗口拉伸
6. tabwidget 实现选项卡 分页效果 窗口切换
tabWidget 的实现默认选项卡时显示在上方的,且当修改成显示在左侧的时候字体是竖着的。 如下图
具体修改: 1. 属性-> tabPosition 修改成 West
2. 添加自定义的文字style ,tabwidget.cpp下添加如下代码:
版权声明:本文为CSDN博主「skyztttt」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/skyztttt/article/details/52448992
此处为转载
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPainter>
#include <QProxyStyle>
class CustomTabStyle : public QProxyStyle
{
public:
QSize sizeFromContents(ContentsType type, const QStyleOption *option,
const QSize &size, const QWidget *widget) const
{
QSize s = QProxyStyle::sizeFromContents(type, option, size, widget);
if (type == QStyle::CT_TabBarTab) {
s.transpose();
s.rwidth() = 90; // 设置每个tabBar中item的大小
s.rheight() = 44;
}
return s;
}
void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
{
if (element == CE_TabBarTabLabel) {
if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(option)) {
QRect allRect = tab->rect;
if (tab->state & QStyle::State_Selected) {
painter->save();
painter->setPen(0x89cfff);
painter->setBrush(QBrush(0x89cfff));
painter->drawRect(allRect.adjusted(6, 6, -6, -6));
painter->restore();
}
QTextOption option;
option.setAlignment(Qt::AlignCenter);
if (tab->state & QStyle::State_Selected) {
painter->setPen(0xf8fcff);
}
else {
painter->setPen(0x5d5d5d);
}
painter->drawText(allRect, tab->text, option);
return;
}
}
if (element == CE_TabBarTab) {
QProxyStyle::drawControl(element, option, painter, widget);
}
}
};
----------------------------应用 设置 style -----------------------------------------------------
widget_test::widget_test(QWidget *parent) : QWidget(parent), ui(new Ui::widget_test)
{
ui->setupUi(this);
ui->tabWidget->tabBar()->setStyle(new CustomTabStyle);
}
7. stackwidget 实现窗口切换
stackWidget 的切换必须结合button 实现,通过button 建立信号槽 ,通过按键来实现切换。
槽函数例子:下面代码即可显示出来相应界面