zoukankan      html  css  js  c++  java
  • QT学习笔记2

    初探信号槽

      代码如下:

     QPushButton *button=new QPushButton("quit");
     QObject::connect(button,SIGNAL(clicked()),&a,SLOT(quit()));
     button->show();
    

     QObject是所有类的根。Qt使用这个QObject实现了一个单根继承的C++。它里面有一个connect静态函数,用于连接信号槽。注意是静态函数::static。

       发出信号的对象指针: button

      SIGNAL 信号: clicked 点击鼠标新红

       接收信号的对象指针: &a

       槽函数SLOT: quit()

      这种信号槽机制的原理就是指定两个对象,一个对象发出信号,一个对象响应信号。实际上和MFC的消息响应机制类似,信号就是消息,也就是可以自定义消息。槽函数就是消息响应函数,用来响应消息,做具体的任务。

    组件布局

     注意一点,在组件进行信号槽连接时,信号和槽如果有参数,必须加上!

    QWidget* myWidget=new QWidget;
    myWidget->setWindowTitle("Enter your age");

    QSlider* mySlider=new QSlider(Qt::Horizontal);
    QSpinBox *mySpinBox=new QSpinBox;
    mySlider->setRange(0,100);
    mySpinBox->setRange(0,100);

    QSlider* mySlider1=new QSlider(Qt::Horizontal);
    QSpinBox *mySpinBox1=new QSpinBox;
    mySlider1->setRange(0,100);
    mySpinBox1->setRange(0,100);

    QObject::connect(mySpinBox,SIGNAL(valueChanged(int)),mySlider,SLOT(setValue(int)));
    QObject::connect(mySlider,SIGNAL(valueChanged(int)),mySpinBox,SLOT(setValue(int)));
    mySpinBox->setValue(50);

    QObject::connect(mySpinBox1,SIGNAL(valueChanged(int)),mySlider1,SLOT(setValue(int)));
    QObject::connect(mySlider1,SIGNAL(valueChanged(int)),mySpinBox1,SLOT(setValue(int)));

    QHBoxLayout *myHoxlayout=new QHBoxLayout;
    myHoxlayout->addWidget(mySlider);
    myHoxlayout->addWidget(mySpinBox);
    QVBoxLayout *myVoxlayout=new QVBoxLayout;
    myVoxlayout->addLayout(myHoxlayout);
    myVoxlayout->addWidget(mySlider1);
    myVoxlayout->addWidget(mySpinBox1);
    myWidget->setLayout(myVoxlayout);
    myWidget->show();

      布局的关键在于QHBoxLayout QVBoxLayout。layout使用addWidget添加组件,使用addLayout可以添加子布局。窗口通过setLayout进行布局设置。

          程序运行结果

           

    API文档的使用

    QT的文档可以在可以在Qt的安装目录下的bin里面的assistant.exe中看到Qt的文档。

  • 相关阅读:
    Notification(一)系统通知的监听移除
    控制器的生命周期
    Foundation Framework
    View的生命周期方法:loadView、viewDidLoad、viewDidUnload的关系
    第一篇markdown博文
    0622.获取json文件的数据
    0622.发送邮件基本操作
    0622.设置tableView的背景图片(平铺的方式)
    0621.用WebView展示html数据
    iOS的Quartz2D篇——基本图形的绘制
  • 原文地址:https://www.cnblogs.com/love6tao/p/5196465.html
Copyright © 2011-2022 走看看