大学之后用过很多很多次qt,但是都隔了一段时间,导致每次都要从新建工程开始学,以前的都忘得差不多了,只是依稀有印象,所以现在重新开始记录遇到的问题,给自己提个醒儿。
1.新建工程
跳过
2.update调用绘图函数开始无法刷新
用Timer定时器使其自动刷新。
看了很多人的问题,基本上是因为一开始update没有办法自己刷新,所以添加一个定时器让他刷新一开始就能够显示重绘函数的内容。
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(50);// 50μs更新一次
添加这个代码就可以了。添加到哪里应该是没有影响的。
3.设置控件的显示和隐藏
label->setVisible (false); 不可见
4.鼠标双击事件
鼠标单击事件:
void Test::mousePressEvent(QMouseEvent* event)
{
if(event->button()==Qt::LeftButton)
{
ui.lineEdit->setText(tr("pushLeftButton"));
}
}
label绑定单击事件:
添加在eventfilter里
bool Widget::eventFilter(QObject *watch, QEvent *event)
{
if(watch== ui->label && event->type() == QEvent::MouseButtonRelease)
{
xxxx;
return true;
}
return false;
}
5.QLabel样式设置:
颜色
1.
ui->label->setStyleSheet("QLabel{background:#000000;}")
rgb颜色查询表:https://www.sojson.com/rgb.html
2.
QPalette label_palette;
label_palette.setColor(QPalette::Background, QColor(0, 0, 0));
ui->label->setAutoFillBackground(true);
ui->label->setPalette(label_palette);
字体:
label->setStyleSheet("background-color: rgb(250, 0, 0);font-size:60px;color:blue");
label->setText("Hello World");
6.删除更改控件名称
将.h和.cpp里的相关函数删除干净即可,程序不会自动删除,需要手动删除。就不会一直报错
7.同一个label中不同按钮绘制不同的图形
我本来设立了两个flag,分别控制每个按钮画图,但是不知道怎么写这个逻辑,因为我设置了flag1控制按钮A,flag2控制按钮B,flag=1时绘图,=0时清楚,逻辑好像就乱在一起了。最后我把要绘制的图案做成了一个图片,直接插入图片,不走过滤器的判断逻辑。
总觉得走了什么漏洞,不过这样的话也减少了时间代价。
到这里,新接的工程告一段落了,希望下次不要再忘记了。感觉很简单结果做了很久,怀疑自己大学白读了。