Qt 学习实例教程

来源:LinuxIDC.com 作者:LinuxIDC.com
  
  1. //mydialog.h   
  2. #ifndef MYDIALOG_H   
  3. #define MYDIALOG_H   
  4. #include    
  5. class QPushButton;  
  6. class MyDialog : public QDialog  
  7. {  
  8.   Q_OBJECT  
  9. public:  
  10.   explicit MyDialog(QWidget *parent = 0);  
  11. signals:  
  12. public slots:  
  13. private:  
  14.   QPushButton *pushButton3D;  
  15.   QPushButton *pushButton2D;  
  16. };  
  17. #endif // MYDIALOG_H  

 

  1. //mydialog.cpp   
  2. #include "mydialog.h"   
  3. #include    
  4. #include    
  5. #include    
  6. MyDialog::MyDialog(QWidget *parent) :  
  7.   QDialog(parent)  
  8. {  
  9.   pushButton3D = new QPushButton();  
  10.   //创建一个图标QIcon对象 资源文件路径可以是绝对路径 也可以是导入工程中后资源文件的路径   
  11.   QIcon icon3D(":/new/ico/images/3d.ico");  
  12.   //设置按钮的图标   
  13.   pushButton3D->setIcon(icon3D);  
  14.   
  15.   pushButton2D = new QPushButton();  
  16.   QIcon icon2D(":/new/ico/images/2d.ico");  
  17.   pushButton2D->setIcon(icon2D);  
  18.   //将按钮设置为2D平面显示 还是一个按钮 可以进行点击操作   
  19.   pushButton2D->setFlat(true);  
  20.   //设置按钮的文本信息   
  21.   pushButton2D->setText("Test");  
  22.   
  23.   QVBoxLayout *layout = new QVBoxLayout();  
  24.   layout->addWidget(pushButton2D);  
  25.   layout->addWidget(pushButton3D);  
  26.   
  27.   this->setLayout(layout);  
  28.   this->resize(100, 100);  
  29.   this->setWindowTitle("QPushButtonDemo");  
  30. }  
  1. //main.cpp   
  2. #include    
  3. #include "mydialog.h"   
  4. int main(int argc, char *argv[])  
  5. {  
  6.   QApplication a(argc, argv);  
  7.   MyDialog dialog;  
  8.   dialog.show();  
  9.   return a.exec();  
  10. }  

资源文件截图:

程序运行截图:

  1. //mydialog.h   
  2. #ifndef MYDIALOG_H   
  3. #define MYDIALOG_H   
  4. #include    
  5. class QLCDNumber;  
  6. class QTimer;  
  7. class MyDialog : public QDialog  
  8. {  
  9.   Q_OBJECT  
  10. public:  
  11.   explicit MyDialog(QWidget *parent = 0);  
  12. signals:  
  13. public slots:  
  14.   void onTimerOut();  
  15. private:  
  16.   QLCDNumber *lcd;  
  17.   QTimer *timer;  
  18. };  
  19. #endif // MYDIALOG_H  
  1. //mydialog.cpp   
  2. #include "mydialog.h"   
  3. #include    
  4. #include    
  5. #include    
  6. #include    
  7. MyDialog::MyDialog(QWidget *parent) :  
  8.   QDialog(parent)  
  9. {  
  10.   //新建一个QLCDNumber对象   
  11.   lcd = new QLCDNumber();  
  12.   //设置晶体管控件QLCDNumber能显示的位数   
  13.   lcd->setDigitCount(10);  
  14.   //设置显示的模式为十进制   
  15.   lcd->setMode(QLCDNumber::Dec);  
  16.   //设置显示方式   
  17.   lcd->setSegmentStyle(QLCDNumber::Flat);  
  18.   
  19.   //新建一个QTimer对象   
  20.   timer = new QTimer();  
  21.   //设置定时器每个多少毫秒发送一个timeout()信号   
  22.   timer->setInterval(1000);  
  23.   //启动定时器   
  24.   timer->start();  
  25.   
  26.   QVBoxLayout *layout = new QVBoxLayout();  
  27.   layout->addWidget(lcd);  
  28.   //信号和槽   
  29.   connect(timer, SIGNAL(timeout()), this, SLOT(onTimerOut()));  
  30.   
  31.   //重新设置窗口的布局管理器   
  32.   this->setLayout(layout);  
  33.   //重新设置窗口的大小   
  34.   this->resize(200, 100);  
  35.   //重新设置窗口的标题   
  36.   this->setWindowTitle("QTimerDemo");  
  37. }  
  38.   
  39. void MyDialog::onTimerOut()  
  40. {  
  41.   //获取系统当前时间   
  42.   QTime time = QTime::currentTime();  
  43.   //设置晶体管控件QLCDNumber上显示的内容   
  44.   lcd->display(time.toString("hh:mm:ss"));  
 
  1. //main.cpp   
  2. #include    
  3. #include "mydialog.h"   
  4. int main(int argc, char *argv[])  
  5. {  
  6.   QApplication a(argc, argv);  
  7.   MyDialog dialog;  
  8.   dialog.show();  
  9.   return a.exec();  
  10. }  

程序运行截图:

  1. //mydialog.h   
  2. #ifndef MYDIALOG_H   
  3. #define MYDIALOG_H   
  4. #include    
  5. class QLineEdit;  
  6. class QSlider;  
  7. class MyDialog : public QDialog  
  8. {  
  9.   Q_OBJECT  
  10. public:  
  11.   explicit MyDialog(QWidget *parent = 0);  
  12. signals:  
  13. public slots:  
  14.   void setLineEditValue(int value);  
  15. private:  
  16.   QLineEdit *lineEdit;  
  17.   QSlider *slider;  
  18. };  
  19. #endif // MYDIALOG_H   
 
  1. //mydialog.cpp   
  2. #include "mydialog.h"   
  3. #include    
  4. #include    
  5. #include    
  6. MyDialog::MyDialog(QWidget *parent) :  
  7.   QDialog(parent)  
  8. {  
  9.   lineEdit = new QLineEdit("50");  
  10.   
  11.   //新建一个水平方向的滑动条QSlider控件   
  12.   slider = new QSlider(Qt::Horizontal);  
  13.   //设置滑动条控件的最小值   
  14.   slider->setMinimum(0);  
  15.   //设置滑动条控件的最大值   
  16.   slider->setMaximum(100);  
  17.   //设置滑动条控件的值   
  18.   slider->setValue(50);  
  19.   
  20.   //信号和槽 当滑动条的值发生改变时,即产生一个valueChanged(int)信号 设置QLineEdit控件的显示文本   
  21.   connect(slider, SIGNAL(valueChanged(int)), this, SLOT(setLineEditValue(int)));  
  22.   
  23.   QHBoxLayout *layout = new QHBoxLayout();  
  24.   layout->addWidget(lineEdit);  
  25.   layout->addWidget(slider);  
  26.   
  27.   this->setLayout(layout);  
  28.   this->resize(200, 50);  
  29.   this->setWindowTitle("QSliderDemo");  
  30. }  
  31.   
  32. void MyDialog::setLineEditValue(int value)  
  33. {  
  34.   int pos = slider->value();  
  35.   QString str = QString("%1").arg(pos);  
  36.   lineEdit->setText(str);  
  37. }  
 
  1. //main.cpp   
  2. #include    
  3. #include "mydialog.h"   
  4. int main(int argc, char *argv[])  
  5. {  
  6.   QApplication a(argc, argv);  
  7.   MyDialog dialog;  
  8.   dialog.show();  
  9.   return a.exec();  
  10. }  

程序运行截图:

  1. //mydialog.h   
  2. #ifndef MYDIALOG_H   
  3. #define MYDIALOG_H   
  4. #include    
  5. class QComboBox;  
  6. class MyDialog : public QDialog  
  7. {  
  8.   Q_OBJECT  
  9. public:  
  10.   explicit MyDialog(QWidget *parent = 0);  
  11. signals:  
  12. public slots:  
  13.   void onChanged(int index);  
  14. private:  
  15.   QComboBox *comboBox;  
  16. };  
  17. #endif // MYDIALOG_H  
  1. //mydialog.cpp   
  2. #include "mydialog.h"   
  3. #include    
  4. #include 
    时间:2011-10-24 11:33 来源:LinuxIDC.com 作者:LinuxIDC.com 原文链接

好文,顶一下
(1)
25%
文章真差,踩一下
(3)
75%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量