歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> QT標准對話框

QT標准對話框

日期:2017/3/1 11:10:59   编辑:Linux編程
初學QT,完全沒有一點概念,在一本書上面看了幾遍代碼,剛剛對QT有一個簡單的認識,與大家分享一下書上面的代碼
  1. //CommonDialog.h
  2. #ifndef COMMONDIALOG_H
  3. #define COMMONDIALOG_H
  4. #include <QDialog>
  5. class QPushButton;
  6. class QLineEdit;
  7. class QFrame;
  8. class QGridLayout;
  9. class StandardDialogs:public QDialog
  10. {
  11. Q_OBJECT
  12. public:
  13. StandardDialogs(QWidget *parent = 0, Qt::WindowFlags f = 0);
  14. ~StandardDialogs();
  15. public:
  16. QGridLayout *layout;
  17. QPushButton *filePushButton;
  18. QPushButton *colorPushButton;
  19. QPushButton *fontPushButton;
  20. QLineEdit *fileLineEdit;
  21. QLineEdit *fontLineEdit;
  22. QFrame *colorFrame;
  23. private slots:
  24. void slotOpenFileDlg();
  25. void slotOpenColorDlg();
  26. void slotOpenFontDlg();
  27. };
  28. #endif // COMMONDIALOG_H

  1. //CommonDialog.cpp
  2. #include "CommonDialog.h"
  3. #include <QtGui>
  4. StandardDialogs::StandardDialogs(QWidget *parent, Qt::WindowFlags f):QDialog(parent, f)
  5. {
  6. setWindowTitle(tr("Standard Dialogs"));
  7. layout = new QGridLayout(this);
  8. filePushButton = new QPushButton;
  9. filePushButton->setText(tr("File Dialog"));
  10. colorPushButton = new QPushButton;
  11. colorPushButton->setText(tr("Color Dialog"));
  12. fontPushButton = new QPushButton;
  13. fontPushButton->setText(tr("Font Dialog"));
  14. fileLineEdit = new QLineEdit;
  15. colorFrame = new QFrame;
  16. colorFrame->setFrameShape(QFrame::Box);
  17. colorFrame->setAutoFillBackground(true);
  18. fontLineEdit = new QLineEdit;
  19. fontLineEdit->setText(tr("Hello World"));
  20. layout->addWidget(filePushButton, 0, 0);
  21. layout->addWidget(fileLineEdit, 0, 1);
  22. layout->addWidget(colorPushButton, 1, 0);
  23. layout->addWidget(colorFrame, 1, 1);
  24. layout->addWidget(fontPushButton, 2, 0);
  25. layout->addWidget(fontLineEdit, 2, 1);
  26. layout->setMargin(15);
  27. layout->setSpacing(10);
  28. connect(filePushButton, SIGNAL(clicked()), this, SLOT(slotOpenFileDlg()));
  29. connect(colorPushButton, SIGNAL(clicked()), this, SLOT(slotOpenColorDlg()));
  30. connect(fontPushButton, SIGNAL(clicked()), this, SLOT(slotOpenFontDlg()));
  31. }
  32. StandardDialogs::~StandardDialogs()
  33. {
  34. }
  35. void StandardDialogs::slotOpenFileDlg()
  36. {
  37. QString s = QFileDialog::getOpenFileName(
  38. this,
  39. "open file dialog",
  40. "/",
  41. "C++ files(*.cpp);;C files(*.c);;Head files(*.h)");
  42. fileLineEdit->setText(s.toAscii());
  43. }
  44. void StandardDialogs::slotOpenColorDlg()
  45. {
  46. QColor color = QColorDialog::getColor(Qt::blue);
  47. if(color.isValid())
  48. {
  49. colorFrame->setPalette(QPalette(color));
  50. }
  51. }
  52. void StandardDialogs::slotOpenFontDlg()
  53. {
  54. bool ok;
  55. QFont font = QFontDialog::getFont(&ok);
  56. if(ok)
  57. {
  58. fontLineEdit->setFont(font);
  59. }
  60. }
  1. //main.cpp
  2. #include <QApplication>
  3. #include "CommonDialog.h"
  4. int main(int argc, char *argv[])
  5. {
  6. QApplication app(argc, argv);
  7. StandardDialogs *sd = new StandardDialogs;
  8. sd->show();
  9. return app.exec();
  10. }

程序運行截圖:

Copyright © Linux教程網 All Rights Reserved