1. 程式人生 > >C++ QT入門練習

C++ QT入門練習

視窗類widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPushButton>


class Widget : public QWidget
{
    Q_OBJECT
public:
    Widget(QWidget *parent = 0);
    ~Widget();
    void mySlot();
private:
    QPushButton b1;
    QPushButton *b2;
    QPushButton b3;

    
};

#endif // WIDGET_H

widget.cpp

#include "widget.h"


Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    b1.setParent(this);
    b1.setText("^_^");
    b1.move(100,100);
    b2 = new QPushButton(this);
    b2->setText("abc");
    connect(&b1, &QPushButton::pressed, this, &Widget::close);
    connect(b2,&QPushButton::released,this,&Widget::mySlot);
    connect(b2,&QPushButton::released,&b1,&QPushButton::hide);
    /* &b1 訊號發出者,指標型別
     * &QPushButton::pressed, 處理的訊號, &傳送者的類名,訊號名字
     * this:訊號接受者
     * &Widget::close 槽函式,訊號處理函式
     */

    setWindowTitle("BOSS");
    b3.setParent(this);
    b3.setText("goto");
    b3.move(50,50);


}

void Widget::mySlot()
{
    b2->setText("123");
}


Widget::~Widget()
{

}

主函式

#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.setWindowTitle("Hello QT");
    w.show();
    return a.exec();
}