Qt按钮按动、划过背景设置
给按钮添加背景后,原先按钮的按动效果就没了,(按钮没有反馈,我的手就会一直在抖,哈哈哈哈),十分的难受,于是自己给他添加初始状态,鼠标滑过和鼠标点击三种状态的效果。
解决方法:
使用样式表给按钮添加不同状态的背景图片。
效果如下:
操作步骤:
1.使用Qt创建一个项目,并且将想要显示的效果图资源添加到Qt资源系统之中。
然后,在ui界面添加一个按钮控件。
最后,右键修改样式表如下:
123456789#my_button{ border-image: url(:/images/border.png);}#my_button:hover{ border-image: url(:/images/bc2.png);}#my_button::pressed{ border-image: url(:/images/border002.png);}
P.S.这里要指明对象,my_button就是想要添加效果的按钮。
123#my_button{ border-image: url(:/images/border ...
QComboBox使用小技巧
QComboBox是一个下拉列表界面类,可以使用qt设计师界面combo box添加或手动添加。
QComboBox类添加元素有二个重载的QComboBox::addItem()函数,分别为添加图标和不添加图标两个版本。
123void QComboBox::addItem(const QString &text, const QVariant &userData = QVariant())void QComboBox::addItem(const QIcon &icon, const QString &text, const QVariant &userData = QVariant())
使用方法如下:
123456QComboBox *cB_x = new QComboBox(this);cB_x->addItem(QString("第一项"),1);QIcon cb_icon;cb_icon.addFile(":/images/icons/cb_icon1.ico");cB_x->ad ...
QSpinBox的valueChanged信号
在Qt使用QSpinBox控件和QSlider控件做信号与槽的关联操作时,链接QSpinBox的信号与QSlider的槽时,没有问题。
1234567QSpinBox *spB_age;QSlider *sli_age;spB_age = new QSpinBox(this);sli_age = new QSlider(this);spB_age->setRange(0,130);sli_age->setRange(0,130);connect(sli_age,&QSlider::valueChanged,spB_age,&QSpinBox::setValue);
但链接QSlider的信号与QSpinBox的槽时,却报错了。
1connect(spB_age,&QSpinBox::valueChanged,sli_age,&QSlider::setValue);
通过查阅文档,我们发现QSpinBox::valueChanged()是一个重载函数,有两种类型的参数,编译器识别不出信号类型,无法确定绑定那一个函数。
QSpi ...
函数指针
1 什么是函数指针? 函数指针,顾名思义,它是一个指向函数的指针,重要的事情说三遍,是指针,是指针,是指针。如同C++中其他指针一样,函数指针也有一个指向的地址,这个地址是函数地址,是系统在编译函数时分配个函数的存储空间的首地址。其实我们常见的函数名就是一个函数指针。
2 函数指针和指针函数 知道了什么函数指针后,要怎么定义函数指针呢?可以向定义普通指针变量一样定义它吗?
12345678// 数据类型名 * 指针变量名;int num = 5;char degit = '3';int * a = #char * b = °it;int *func(int a, int b); //这是指针函数
当然不行了,这是定义了一个指针函数,一个返回值为int指针的函数,本质是函数,可不是我们想要的函数指针。
那要如何定义函数指针呢?
数据类型名 (*指针变量名)(参数列表);
123456789//首先要有一个函数,int func(int a, int b){ return a+b;}//定义一个函数指针pf ...
Qt资源系统
1.Qt资源系统 Qt资源管理系统是一种不依赖平台的独特机制,用于在应用程序的可执行文件中存储二进制文件。出于不同的目的(防止图标文件丢失或恶意更改),开发者不希望本程序的资源文件被更改。因此,把资源文件存储在可执行文件中,这就是静态加载资源方式。静态方式的缺点就是编译出的可执行文件容量会增加。为避免这一问题,将资源文件以二进制形式单独存储在一个文件中,这就是动态加载资源方式。
Qt 资源系统是基于qmake、 rcc(Qt’s resource compiler), and QFile而实现的。
2. 资源收集文件.qrc 那编译器又是如何知道哪些资源文件需要加载到可执行文件中的呢?资源收集文件.qrc闪亮登场。
12345678<RCC> <qresource prefix="/img"> <file alias="subscript_img">zhihutubiao.png</file> </qresource> <qre ...
leetcode面试题0502二进制转字符串
题目描述将一个六位以内浮点数转化为二进制。
我的思路输入浮点数数字 $n$, 其可以转化为二进制的情况如下$$a_1*(\frac{1}{2})^1+a_2*(\frac{1}{2})^2+a_3*(\frac{1}{2})^3+a_4*(\frac{1}{2})^4+a_15*(\frac{1}{2})^5+a_6*(\frac{1}{2})^6=n$$
不用考虑6次方之后的情况,因为会超出位数;等式两边同时 $ 10^6 $$$500000a_1+250000a_2+…=n10^6$$接下来就用 $ n*10^6 $ 从大到小依次减去a的参数,如果最后 $n$ 不为0,则返回”ERROR”;否则返回” $0.a_1a_2a_3a_4a_5a_6$ “,最后处理一下末尾多余的0就可以了
代码实现123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354class Solution {public: string ...