Qt
-
- 1.设置整个界面背景图
- 2.QLabel使用pixmap显示图和qss设置背景缩放图
- 3.QT界面实时显示当前日期时间(1s切换一次)
- 4.关于Qt中常用的延时方法
- 5.Qt槽机制:public slots 和 private slots
- 6.QT之解决按钮显示中文乱码问题
- 7.解决QMetaObject::connectSlotsByName: No matching signal for on_sendButton_3_clickedtest(QString)问题
- 8.QString与string的相互转换
- 9.Qt中int转换为QString的方法
- 10.9.Qt中QString转换为int的方法
运行环境:VS2019中使用QT5.13.2
1.设置整个界面背景图
setStyleSheet来设置图形界面的外观:https://blog.csdn.net/yongan1006/article/details/7414809
this->setStyleSheet("background-color: gray;");
this->setWindowIcon(QIcon("6.jpg"));
this->setStyleSheet("QWidget{background:write url(gray_background.jpg)}");
若设置背景图之后发现界面最下面或者最上面出现重叠的效果,只需在Qt设计师里面把菜单栏等状态栏移除即可。
关于中英文颜色对照表,如下:
https://www.5tu.cn/colors/yansezhongwenming.html
2.QLabel使用pixmap显示图和qss设置背景缩放图
3.QT界面实时显示当前日期时间(1s切换一次)
https://blog.csdn.net/qq_42482412/article/details/109477018
4.关于Qt中常用的延时方法
/* 延时函数 若要实现1秒延时,则msec的值就是:1000*/
void PlcDirectConnection::Delay_MSec(unsigned int msec)
{
QTime _Timer = QTime::currentTime().addMSecs(msec);
while (QTime::currentTime() < _Timer)
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
}
参考:关于Qt中常用的延时方法
5.Qt槽机制:public slots 和 private slots
①槽是普通的 C++ 成员函数,可以被正常调用,它们唯一的特殊性就是很多信号可以与其相关联。当与其关联的信号被发射时,这个槽就会被调用。槽可以有参数,但槽的参数不能有缺省值。
②既然槽是普通的成员函数,因此与其它的函数一样,它们也有存取权限。槽的存取权限决定了谁能够与其相关联。同普通的 C++ 成员函数一样,槽函数也分为三种类型,即 public slots、private slots 和 protected slots。
public
slots:在这个区内声明的槽意味着任何对象都可将信号与之相连接。这对于组件编程非常有用,你可以创建彼此互不了解的对象,将它们的信号与槽进行连接以便信息能够正确的传递。
protected
slots:在这个区内声明的槽意味着当前类及其子类可以将信号与之相连接。这适用于那些槽,它们是类实现的一部分,但是其界面接口却面向外部。
private slots:在这个区内声明的槽意味着只有类自己可以将信号与之相连接。这适用于联系非常紧密的类。
槽也能够声明为虚函数,这也是非常有用的。
槽的声明也是在头文件中进行的。例如,下面声明了三个槽:
public slots:
void mySlot();
void mySlot(int x);
void mySignalParam(int x,int y);
如果是槽函数的话一定要指明它是slots 否则用不了,而public private protected 这些跟C++一样
6.QT之解决按钮显示中文乱码问题
方法:用QStringLiteral,如QStringLiteral("关闭")
(当时我使用了一个串口打开功能,即一开始点击打开,点击之后按钮变为关闭,再次点击关闭又变为打开,注意“打开”“关闭”“打开”三个状态都要统一使用QStringLiteral)
7.解决QMetaObject::connectSlotsByName: No matching signal for on_sendButton_3_clickedtest(QString)问题
原来是命名规则的问题,https://blog.csdn.net/restraint/article/details/9956449
怪不得之前看别人的源码时,既没有将控件和槽函数connect,ui文件中也没有将控件和槽函数连接,但点击按钮时,会有事件发生。
控件名
槽函数:on_控件名_信号名
会自动调用
但是,如果采用显式 connect的方法的同时,又将槽函数的名字起成了“on_控件名_信号名”的格式,那么就会在运行时弹出 “QMetaObject::connectSlotsByName: No matching signal for”的警告了!
8.QString与string的相互转换
//1.QString转换String
string s = qstr.toStdString();
//2.String转换QString
QString qstr2 = QString::fromStdString(s);
9.Qt中int转换为QString的方法
使用QString::number函数
原型:QString::number(long n,base=10);
第一个参数是要转行的数据,第二个参数是进制
eg.
long a = 63;
QString s = QString::number(a,10)
// s = "63"
QString t = QString::number(a,16).toUpper();
// t = "3F"
10.9.Qt中QString转换为int的方法
QString a;
a = "123";
int b;
b = a.toInt();