概述
本学期的OOP大程决定用Qt来写,今天开始了对它的学习~
我开始是决定通过实战来边做边学,想做一个简单的界面:有一个button和一个spinbox,button每按一下,spinbox里的值都会+1。
结果这么简单的一个小功能做了2个多小时。。。是因为我对Qt的消息槽的机制还不是很理解,本以为直接将clicked与setValue连接起来就可以了,结果当然是编译失败。然后我就自己写了一个slot函数,如下:
#ifndef MYSPINBOX_H
#define MYSPINBOX_H
#include
#include
class MySpinBox:public QSpinBox
{
Q_OBJECT
private:
int value;
public:
MySpinBox(QWidget *parent=0);
void changeValue();
};
#endif // MYSPINBOX_H
#include "myspinbox.h"
MySpinBox::MySpinBox(QWidget *parent):QSpinBox(parent)
{
this->value = 0;
}
void MySpinBox::changeValue()
{
this->value = this->value() + 1;
this->setValue(this->value);
}
总感觉这样写有些累赘,希望有人可以提些建议~
#include "myspinbox.h"
#include
#include
#include
int main(int argc, char *argv[])
{
int i = 0;
QApplication a(argc, argv);
QWidget *w = new QWidget();
QPushButton *btn = new QPushButton("+1", w);
MySpinBox *spinBox = new MySpinBox(w);
QObject::connect(btn, &QPushButton::clicked, spinBox, &MySpinBox::changeValue);
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(btn);
layout->addWidget(spinBox);
w->setLayout(layout);
w->show();
return a.exec();
}
最后
以上就是壮观老师为你收集整理的Qt学习(1)——刚入门的小练习的全部内容,希望文章能够帮你解决Qt学习(1)——刚入门的小练习所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复