我是靠谱客的博主 壮观老师,最近开发中收集的这篇文章主要介绍Qt学习(1)——刚入门的小练习,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本学期的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)——刚入门的小练习所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部