做qt前端的一些感悟

短学期开学了半个月,从开始对做项目感到茫然到逐渐理解自己ui该如何做,觉得自己成长了很多,不管是学习能力上还是自控力都有了明显的提高。主要想分享自己做ui的一些经验,避免大家走弯路。

1、qss的样式表实现:
1)项目新建概要->文本文件->以qss结尾建立文件
2)按照样式表格式写
3)在资源文件里加上qss文件
4)使用的时候
#include<QFile>
QFile file(":/qss/my.qss");
file.open(QFile::ReadOnly);
QString styleSheet=tr(file.readAll());
qApp->setStyleSheet(styleSheet);

2、widget的奇怪地方
1)不能作为子窗口弹出,不然无法全部显示,应该在new的时候作为父窗口
this->hide();//隐藏当前窗口
principalSheet*p=new principalSheet(0);
p->show();
2)设置背景图片要用3的方法

3、父窗口怎么添加背景图片且不影响子窗口
1).h
protected:
void paintEvent(QPaintEvent *event);
2).cpp
#include<QPainter>
void principalSheet(改)::paintEvent(QPaintEvent *event)
{
QPixmap pixmap = QPixmap(":/imag/seu3.jpg").scaled(this->size());
QPainter painter(this);
painter.drawPixmap(this->rect(), pixmap);
}
4、不规则窗口
1).h
protected:
void paintEvent(QPaintEvent *);
2).cpp
#include <QPixmap>
#include <QBitmap>
#include <Qpainter>

构造函数里加上下面
QPixmap pix;
// 加载图片
pix.load(":/imag/bu1.png");
// 设置窗口大小为图片大小
resize(pix.size());
// 为窗口设置遮罩
setMask(pix.mask());

void newBuild::paintEvent(QPaintEvent *)
{
QPainter painter(this);
// 从窗口左上角开始绘制图片
painter.drawPixmap(0,0,QPixmap(":/imag/bu1.png"));
}

5、tablewidget
1)设置行列数
ui->tableWidget->setColumnCount(5);
ui->tableWidget->setRowCount(10);
2)在表格里添加部件
ui->tableWidget->setCellWidget(0,3,ui->detailButton1);
3)添加内容并居中
ui->tableWidget->setItem(0,2,new QTableWidgetItem(“张飞”));//内容修改
ui->tableWidget->item(0, 2)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);//居中修改
4)设置行距
ui->tableWidget->verticalHeader()->setDefaultSectionSize(64);
5)设置列宽
ui->tableWidget->horizontalHeader()->resizeSection(0, 700);//第一列像素700
6)添加表头
QStringList headers;
headers << QString::fromUtf8(“课程类型”) << QString::fromUtf8(“课程名称”) << QString::fromUtf8(“开课老师”) << QString::fromUtf8(“详情”) << QString::fromUtf8(“删除”);
ui->tableWidget->setHorizontalHeaderLabels(headers); //水平放置该头
7)表头格式
ui->tableWidget->horizontalHeader()->setStyleSheet(“QHeaderView::section{background:skyblue;}”);
8)选中颜色
ui->tableWidget->setStyleSheet(“selection-background-color:skyblue;”);
9)间隔一行颜色不同
ui->tableWidget-> setAlternatingRowColors(true);
ui->tableWidget->setPalette(QPalette(Qt::lightGray));
10)垂直头不可视
ui->tableWidget->verticalHeader()->setVisible(false);
11)字体
QFont font = ui->tableWidget->horizontalHeader()->font(); //先获取当前的Font的内容并保存在一个零时变量中
font.setBold(true);
ui->tableWidget->horizontalHeader()->setFont(font); //设置表头的字体
12)设置不可编辑
ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
13)选择行为选择一行
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
14)表头高度
ui->tableWidget->horizontalHeader()->setFixedHeight(50);
15)横间距等宽
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);

6、窗口弹出居中
QDesktopWidget*desktop=QApplication::desktop(); move((desktop->width()-this->width())/2,(desktop->height()-this->height())/2);
7、样式表格式
1)在具体部件上面右击进入快捷样式表color是字体颜色
2)在窗口上面右击进入快捷样式表QPushButton是对所有按钮,针对个别应该QPushButton#okButton{}

8、按钮怎么实现图片按钮和按下的感觉
1)样式表border-background 添加资源(label插入图片)
2)
ui->okButton->setStyleSheet(“QPushButton{border-image: url(:/imag/bu7.png);}”
“QPushButton:hover{color:blue;}”
“QPushButton:pressed{color:blue;”
“border: 1px solid rgb(12 , 138 , 235);”
“padding-left:3px;”
“padding-top:3px;}”);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值