本人刚接触qt,之前没用过c++,此文用作记录
ischecked是返回bool类型的,所以后面判断哪个选项被选择时全用的if else,有哪位大兄弟知道可以返回ID类型的函数麻烦留言一下..
dialog.h
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
namespace Ui {
class Dialog;
}
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = nullptr);
~Dialog();
struct Option{
bool min5;
bool min10;
bool min15;
bool min20;
bool min25;
bool min30;
bool min35;
bool min40;
bool min45;
bool min50;
bool min55;
bool min60;
};
public:
Option getOption() const;
Option option_;
private slots:
void on_buttonBox_rejected();
void on_buttonBox_accepted();
private:
Ui::Dialog *ui;
};
#endif // DIALOG_
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QTimer>
#include <QDebug>
#include <QButtonGroup>
#include <QDialog>
#include <dialog.h>
int timer_out;
int A,B,C,D;
long int min;
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
min=1000;
//定时触发时间
timer = new QTimer(this);
timer->start(1000);
//定时结束处理的事项
connect(timer,&QTimer::timeout,[=]()
{
qDebug() << "定时间隔";
});
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_clicked()
{
Dialog dlg;
auto result = dlg.exec();
if(result== QDialog::Accepted){
//auto option = dlg.getOption();
if(dlg.option_.min5==1)
{
qDebug()<<"5min";
timer->setInterval(timer_out=5*min);
}
else if(dlg.option_.min10==1)
{
qDebug()<<"10min";
timer->setInterval(timer_out=10*min);
}
else if(dlg.option_.min15==1)
{
qDebug()<<"15min";
timer->setInterval(timer_out=15*min);
}
else if(dlg.option_.min20==1)
{
qDebug()<<"20min";
timer->setInterval(timer_out=20*min);
}
else if(dlg.option_.min25==1)
{
qDebug()<<"25min";
timer->setInterval(timer_out=25*min);
}
else if(dlg.option_.min30==1)
{
qDebug()<<"30min";
timer->setInterval(timer_out=30*min);
}
else if(dlg.option_.min35==1)
{
qDebug()<<"35min";
timer->setInterval(timer_out=35*min);
}
else if(dlg.option_.min40==1)
{
qDebug()<<"40min";
timer->setInterval(timer_out=40*min);
}
else if(dlg.option_.min45==1)
{
qDebug()<<"45min";
timer->setInterval(timer_out=45*min);
}
else if(dlg.option_.min50==1)
{
qDebug()<<"50min";
timer->setInterval(timer_out=50*min);
}
else if(dlg.option_.min55==1)
{
qDebug()<<"55min";
timer->setInterval(timer_out=55*min);
}
else if(dlg.option_.min60==1)
{
qDebug()<<"60min";
timer->setInterval(timer_out=60*min);
}
}
else{
qDebug()<<"reject.";
}
}
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QTimer>
#include <QButtonGroup>
#include <QDebug>
#include <QObject>
#include <QDialog>
#include <dialog.h>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_pushButton_clicked();
private:
Ui::Widget *ui;
int timer_out;
QButtonGroup *time_interval;
QTimer *timer;
QDialog dlg;
};
#endif // WIDGET_H