- //mydialog.h
- #ifndef MYDIALOG_H
- #define MYDIALOG_H
- #include <QDialog>
- class QComboBox;
- class MyDialog : public QDialog
- {
- Q_OBJECT
- public:
- explicit MyDialog(QWidget *parent = 0);
- signals:
- public slots:
- void onChanged(int index);
- private:
- QComboBox *comboBox;
- };
- #endif // MYDIALOG_H
- //mydialog.cpp
- #include "mydialog.h"
- #include <QtGui/QComboBox>
- #include <QtGui/QMessageBox>
- #include <QtGui/QIcon>
- MyDialog::MyDialog(QWidget *parent) :
- QDialog(parent)
- {
- comboBox = new QComboBox(this);
- comboBox->resize(100, 20);
- QIcon icon1(":/new/ico/images/ftp.ico");
- comboBox->addItem(icon1, "ftp");
- QIcon icon2(":/new/ico/images/www.ico");
- comboBox->addItem("www");
- //设置列表框中选项的图标
- comboBox->setItemIcon(1, icon2);
- //当下拉列表框中的项重新选择时 产生一个currentIndexChanged(int index)信号 弹出一个消息框提示你重新选择了哪一项
- connect(comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(onChanged(int)));
- this->resize(100, 100);
- this->setWindowTitle("QComboBoxDemo");
- }
- void MyDialog::onChanged(int index)
- {
- QMessageBox::warning(this, "Message", comboBox->itemText(index), QMessageBox::Ok);
- }
- //main.cpp
- #include <QtGui/QApplication>
- #include "mydialog.h"
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- MyDialog dialog;
- dialog.show();
- return a.exec();
- }
资源文件截图:
程序运行截图: