高级控件
1. Spinbox与Horizontal Slider以及Vertical Slider水平滚动条控件之间信号和槽的绑定
1.1. 可视化操作
1.2. 代码实现
connect(ui->spinBox,SIGNAL(valueChanged(int)),this,SLOT(slot_valueChange(int)));
connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),this,SLOT(slot_valueChangedBin(int)));
void Widget::slot_valueChange(int value)
{
qDebug() << value <<endl;
ui->horizontalSlider->setValue(value);
}
void Widget::slot_valueChangedBin(int value)
{
ui->spinBox->setValue(value);
}
2. Qtimer类
m_QTimer = new QTimer(this);
m_QTimer->setInterval(10); //设置定时器周期
connect(m_QTimer,SIGNAL(timeout()),this,SLOT(slot_timer_timeout()));
m_QTimer->start(10); //启动定时器
void Widget::slot_timer_timeout()
{
QTime curTime = QTime::currentTime(); //获取当前时间
qDebug() << curTime <<endl;
}
3. 高级控件:可以将多个控件功能和为一个的高级控件类
对话框
- QInputDialog:用户输入对话框
//1. 用户输入对话框
bool value;
int index = QInputDialog::getInt(&w,"输入","数字",0,0,100,1,&value);
if(value)
{
qDebug() << "true" << index << endl;
}
else
{
qDebug() << "false" << endl;
}
QStringList items;
items << "1111" << "2222" << "33333333333";
bool ok;
QString text =QInputDialog::getItem(&w,"输入","数字",items,0,false,&ok);
if(ok && !text.isEmpty())
{
qDebug()<< text;
}
- QColorDialog:选择指定颜色的对话框
//2. 选择颜色对话框
QColor color;
color = QColorDialog::getColor(Qt::yellow,&w,"颜色",QColorDialog::DontUseNativeDialog);
//默认的颜色,指定父类,标题,指定option值
if(color.isValid())
{
qDebug()<< color.name();
}
- QFontDialog:选择字体的对话框
//3. QFontDialog:选择字体的对话框
bool okk;
QFont font = QFontDialog::getFont(&okk,QFont("宋体",12),&w);
if(okk)
{
qDebug() << font.key();
}
- QFileDialog:选择文件或目录的对话框
//4.
// QFileDialog::ShowDirsOnly;//只显示目录
// QFileDialog::DontResolveSymlinks;//不显示符号链接
// QFileDialog::DontConfirmOverwrite;//覆写现文件时,不显示警告信息
// QFileDialog::DontUseNativeDialog;//不使用系统默认文件对话框
// QFileDialog::ReadOnly;//使用制度模式文件对话框
// QFileDialog::HideNameFilterDetails;//使用过滤器隐藏文件
//文件显示
QFileDialog::Options op;
op = QFileDialog::DontResolveSymlinks | QFileDialog::ShowDirsOnly;
op = QFileDialog::DontUseNativeDialog;
//显示文件路径
QString str = QFileDialog::getExistingDirectory(&w,"文件","/home",op);
qDebug() << str;
//指定要保存的文件
QString filename = QFileDialog::getSaveFileName(NULL, QStringLiteral("保存文件"), QStringLiteral("C:/Users/Desktop"), QStringLiteral("EXCEL(*.xlsx)"));
qDebug() <<filename;
- QMessageBox:模态对话框,提示框,可以选择有确实的,取消…
//5. 提示框
QMessageBox::StandardButton button;
button = QMessageBox::critical(&w,"提示","选择按钮",QMessageBox::Ok | QMessageBox::No | QMessageBox::Help);
if(button == QMessageBox::Ok)
{
qDebug("OK");
}
else if(button == QMessageBox::No)
{
qDebug("NO");
}
else
{
qDebug("Help");
}
当然,除了 OK 和 Cancel 按钮外, 还可选择其它按钮。例如:
QMessageBox ::Yes, QMessageBox :: No, QMessageBox :: Retry , QMessageBox :: Ignore。
消息框里显示的图标当然也不止一种,
◆ QMessageBox :: NoIcon不显示任何图标;
◆ QMessageBox :: Information显示一个信息图标
◆ QMessageBox :: warning显示一个警告图标
◆ QMessageBox :: Critical提示显示关键信息,可选用该图标=
//实例化消息对话框对象
QMessageBox *msgBox;
msgBox = new QMessageBox(
"title", //这里是设置消息框标题
"messageBox comment", //这里是设置消息框显示的内容
QMessageBox::Critical, //这里是在消息框显示的图标
QMessageBox::Ok | QMessageBox::Default, //这里是显示消息框上的按钮情况
QMessageBox::Cancel | QMessageBox::Escape, //这里与 键盘上的 escape 键结合。当用户按下该键,消息框将执行cancel按钮事件
//QMessageBox::information(NULL,"title","comment") | //这里是 定义第三个按钮, 该例子 只是 了显示2个按钮
QMessageBox::warning(NULL,"waring","content",QMessageBox::No | QMessageBox::Yes)
//QMessageBox::question(NULL, "question", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes)
);
msgBox->show(); //显示消息框