push button
信号:clicked()
实例代码:
connect(ui->lxpushButton, SIGNAL(clicked()), this, SLOT(myslots()));
tool box
实例代码:
action = new QAction("&Open", this);
action2 = new QAction("&Close", this);
menu = new QMenu();
QList<QAction *> fileActions;
fileActions.push_back(action);
fileActions.push_back(action2);
menu->addMenu("&File")->addMenu("web safe")->addActions(fileActions);
menu->addMenu("&Edit")->addMenu("app safe")->addActions(fileActions);
ui->lxtoolButton->setText("tool box");
ui->lxtoolButton->setPopupMode(QToolButton::InstantPopup);
ui->lxtoolButton->setMenu(menu);
connect(ui->lxtoolButton, SIGNAL(triggered(QAction *)), this, SLOT(paction(QAction *)));
效果:
group box
实例代码:
ui->gbSetNetWork->setChecked(false);
ui->gbSetNetWork->setStyleSheet(
QString::fromUtf8("QGroupBox\
{ border: 1px solid green; \ // 设置边框1个像素,绿色填充
border-radius: 4px; \ // 实现圆角边框效果,第一个参数是水平半径
margin-top: 6px\ // 设置对象顶边的外延边距,外延边距始终透明
}\
QGroupBox::title{top: -9 ex; left:8px}}")); // 设置标题显示的样式
效果:
QToolBox
信号: currentChanged
实例代码:
connect(ui->toolBox, SIGNAL(currentChanged(int)), this, SLOT(GetCurrent(int)));
QTabWidget
信号:
tabCloseRequested(int)
currentChanged(int)
实例代码:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(CloseTab(int)));
connect(ui->tabWidget, SIGNAL(currentChanged(int)), this, SLOT(PrintTab(int)));
}
void MainWindow::CloseTab(int index)
{
ui->tabWidget->removeTab(index);
}
void MainWindow::PrintTab(int index)
{
qDebug() << "print tab " << index;
}
属性:
属性名 | 注释 |
---|---|
tabsClosable | 设置Tab是否可以关闭 |
movable | 设置Tab是否可以左右拖动 |
TabShape | 设置Tab的形状 |
效果:
QComboBox
信号:
信号名 | 注释 |
---|---|
activated (int index) (const QString&) | 点击任意一项即会触发,SetCurrentIndex调用时不会触发 |
currentIndexChanged (int index) (const QString&) | 点击任意一项即会触发,SetCurrentIndex调用时也会触发 |
editTextChanged (int index) (const QString&) | 当combobox属性edit是true时,如果修改文本,该信号在每次输入时会触发 |
highlighted (int index) (const QString&) | combobox中鼠标放在任何一个选项上即会触发 |
实例代码:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->comboBox, SIGNAL(activated(const QString&)), this, SLOT(ActivatedGet(const QString&)));
connect(ui->comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(currentIndexChangedGet(int)));
connect(ui->comboBox, SIGNAL(editTextChanged(const QString&)), this, SLOT(editText(const QString &)));
connect(ui->comboBox, SIGNAL(highlighted(const QString&)), this, SLOT(high(const QString&)));
}
void MainWindow::ActivatedGet(const QString &str)
{
qDebug() << "activated " << str;
}
void MainWindow::currentIndexChangedGet(int index)
{
qDebug() << "currentIndexChanged " << index;
}
void MainWindow::editText(const QString &str)
{
qDebug() << "editTextChanged " << str;
}
void MainWindow::high(const QString &str)
{
qDebug() << "highlighted" << str;
}
属性:
属性名 | 注释 |
---|---|
editable | 设置combobox是否可以修改内容 |
效果:
QLineEdit
信号:
信号名 | 注释 |
---|---|
cursorPositionChanged(int old, int cur) | 光标在编辑框中游走时即会出发,old标示光标之前的位置,cur标示现在位置 |
editingFinished() | |
returnPressed() | 按回车即触发 |
selectionChanged() | 鼠标选中条目时触发 |
textChanged(const QString&) | 文本改变时触发 |
textEdited(const QString&) | 文本改变时触发 |
实例代码:
ui->lineEdit_1->setValidator(new QIntValidator(1, 100, this));
QRegExp regx("[a-zA-Z0-9]+$");
QValidator *validator = new QRegExpValidator(regx, ui->lineEdit_2);
ui->lineEdit_2->setValidator(validator);
ui->lineEdit_3->setInputMask("000.000.000.000");
ui->lineEdit_4->setEchoMode(QLineEdit::Password);
connect(ui->lineEdit_1, SIGNAL(cursorPositionChanged(int, int)), this, SLOT(curChg(int, int)));
connect(ui->lineEdit_1, SIGNAL(editingFinished()), this , SLOT(editOver));
connect(ui->lineEdit_1, SIGNAL(returnPressed()), this, SLOT(returnPress()));
connect(ui->lineEdit_1, SIGNAL(selectionChanged()), this, SLOT(selectChanged()));
connect(ui->lineEdit_1, SIGNAL(textChanged(const QString&)), this, SLOT(textChange(const QString&)));
connect(ui->lineEdit_1, SIGNAL(textEdited(const QString&)), this, SLOT(textEdited(const QString&)));
效果:
QSpinBox
信号:
信号名 | 注释 |
---|---|
valueChanged(const QString &) (int) | 值是有效变化的时候即触发 |
实例代码:
connect(ui->spinBox, SIGNAL(valueChanged(const QString &)), this, SLOT(valChg(const QString &)));
属性:
属性名 | 注释 |
---|---|
wrapping | 当设置true时, 计数到最大值即反转到最小值重新计数 |
buttonSymbols | 设置spinBox显示按钮的风格 |
Minimum | 设置最小有效数 |
Maximum | 设置最大有效数 |
singleStep | 设置每次改变的步长 |
效果:
QDateTimeEdit
信号:
dateChanged(const QDate &)
timeChanged(const QTime &)
dateTimeChanged(const QDateTime &)
日期格式:
时间格式:
实例代码:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->dateTimeEdit, SIGNAL(dateChanged(const QDate &)), this, SLOT(dateChgGet(const QDate &)));
connect(ui->dateTimeEdit, SIGNAL(timeChanged(const QTime &)), this, SLOT(timeChgGet(const QTime &)));
connect(ui->dateTimeEdit, SIGNAL(dateTimeChanged(const QDateTime &)), this, SLOT(dateTimeChgGet(const QDateTime &)));
ui->dateTimeEdit->setTime(QTime::currentTime());
ui->dateTimeEdit->setDate(QDate::currentDate());
ui->dateTimeEdit->setDisplayFormat("yyyy.MM.dd aph:mm:ss:z");
ui->dateTimeEdit->setCalendarPopup(true);
}
效果:
QSlider
信号:
valueChanged(int)
sliderPressed()
sliderMoved(int)
sliderReleased()
实例代码:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->horizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(valChg(int)));
connect(ui->horizontalSlider, SIGNAL(sliderPressed()), this, SLOT(sliderPressed()));
connect(ui->horizontalSlider, SIGNAL(sliderMoved(int)), this, SLOT(sliderMoved(int)));
connect(ui->horizontalSlider, SIGNAL(sliderReleased()), this, SLOT(sliderRelease()));
}
属性:
tickPosition
tickInterval
效果:
QLabel
信号:
linkActivated(const QString &link)
linkHovered(const QString &link)
实例代码:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->label->setTextFormat(Qt::RichText);
ui->label->setText(tr("<a href=\"http://www.baidu.com/\">clicked me</a>"));
ui->label_3->setTextFormat(Qt::RichText);
ui->label_3->setText(tr("<font size=3 color=green><I>test</T></font>"));
QPixmap *p = new QPixmap(30, 20);
p->fill(Qt::darkMagenta);
ui->label_2->setPixmap(*p);
connect(ui->label, SIGNAL(linkHovered(const QString &)), this, SLOT(linkHovered(const QString &)));
connect(ui->label, SIGNAL(linkActivated(const QString &)), this, SLOT(linkActivated(const QString &)));
}
效果: