My_Widget::My_Widget(QWidget *parent)
: QWidget(parent)
{
this->setFixedSize(320, 480); //固定父视框的大小
/* 使用图片式的按钮! */
// QPushButton* Button = new QPushButton(this);
// Button->move(20, 20);
// //添加图形文件,由选定的图片来生成一个icon变量
QPixmap icon(":/picture/b_resume.png");
// //将按钮替换成图片形式
// Button->setIcon(icon);
// //设置按钮和图片的大小
// Button->setFixedSize(icon.size());
// //通过按钮中的setIconSize函数来修改生成icon变量的大小
// Button->setIconSize(icon.size());
// //去除边框
// Button->setFlat(true);
// connect(Button, &QPushButton::clicked,
// []()
// {
// qDebug() << "我被点击了!";
// });
/* 使用label控件! */
// QLabel* label = new QLabel(this);
// //点击标签转到相应的链接
// label->setText("<a href=www.2345.com>2345</a>");
// label->move(10, 20);
// connect(label,&QLabel::linkActivated,
// [](QString str){
// //qDebug() << str;
// QDesktopServices::openUrl(QUrl(str)); //用来使用相关的链接的!
// }
// );
// QLabel* label2 = new QLabel(this);
// //标签用图片形式显示
// label2->setPixmap(icon);
/* 单行文本输入框 */
//QLineEdit* lineEdit = new QLineEdit(this);
//设置文本框显示格式
//lineEdit->setEchoMode(QLineEdit::Password);
//设置提示文字 隐式的显示
//lineEdit->setPlaceholderText("请输入密码");
//设置字符输入长度
//lineEdit->setMaxLength(10);
/*多行文本框 富文本(形式多样,可以是文字,图片)*/
// textEdit = new QTextEdit(this);
// connect(textEdit, &QTextEdit::textChanged, this,&My_Widget::receiveTextChange);
// connect(textEdit, &QTextEdit::textChanged, this, &My_Widget::receiveTextChange);
/*单选框*/
// QRadioButton* b1 = new QRadioButton(this);
// b1->setText("今天中午吃鸡");
// b1->setChecked(true); //设置默认为选中!
// QRadioButton* b2 = new QRadioButton(this);
// b2->setText("今天中午吃猪");
// b2->move(0, 20);
// QRadioButton* b3 = new QRadioButton(this);
// b3->setText("今天中午不吃");
// b3->move(0, 40);
// QRadioButton* b4 = new QRadioButton(this);
// b4->setText("今天中午喝水");
// b4->move(100, 0);
// b1->setChecked(true); //设置默认为选中!
// QRadioButton* b5 = new QRadioButton(this);
// b5->setText("今天中午喝汤");
// b5->move(100, 20);
// QRadioButton* b6 = new QRadioButton(this);
// b6->setText("今天中午不喝");
// b6->move(100, 40);
//将b4~b6交给box来管理,即与b1~b3独立,不再是互相排斥的效果
// QButtonGroup* box = new QButtonGroup(this);
// box->addButton(b4, 1);
// box->addButton(b5, 2);
// box->addButton(b6, 3);
// //只有选中b5时,这个槽函数才会被执行!
// connect(b4, &QRadioButton::clicked, this,
// [=](int a)
// {
// qDebug() << b4->isChecked() << a;
// });
/*多项选择框*/
// QCheckBox* b1 = new QCheckBox("喝水", this);
// QCheckBox* b2 = new QCheckBox("喝饮料", this);
// b2->move(0, 20);
// QCheckBox* b3 = new QCheckBox("不喝", this);
// b3->move(0, 40);
// connect(b1, &QCheckBox::stateChanged,
// [=](int a)
// {
// qDebug() << b1->isChecked() << a;
// });
/*下拉选择框*/
// QComboBox* comboBox = new QComboBox(this);
// comboBox->move(50, 50);
// comboBox->addItem("吃鸡");
// comboBox->addItem("吃土");
// comboBox->addItem("吃素");
// comboBox->setCurrentIndex(1); //默认显示选项一
// //当选项改变时,执行槽函数!
// connect(comboBox, &QComboBox::currentTextChanged, this,
// [=](QString str)
// {
// //qDebug() << comboBox->currentText();
// qDebug() << str;
// });
/*滑动条*/
// QSlider* slider = new QSlider(this);
// slider->setOrientation(Qt::Horizontal); //设置滑动条的摆放方式,水平或者垂直摆放!
// slider->move(20, 20);
// //设置滑动条的最大最小值
// slider->setMinimum(1);
// slider->setMaximum(99);
// //显示滑动条的值
// connect(slider, &QSlider::valueChanged, this,
// [=](int a)
// {
// //qDebug() << slider->value();
// qDebug() << a;
// });
// /*选框器*/
// QSpinBox* box = new QSpinBox(this);
// box->move(40 + slider->size().width(), 20);
// //设置最大最小值
// box->setMinimum(1);
// box->setMaximum(99);
// //将滑动条和选框器联系在一起,让他们可以实现相互操控
// connect(slider, &QSlider::valueChanged, box, &QSpinBox::setValue);
// //因为QSpinBox中有两个重载的valueChanged函数,所以使用函数指针来指明调用的是哪个函数
// void (QSpinBox::*setvalue_int)(int) = &QSpinBox::valueChanged;
// connect(box, setvalue_int, slider, &QSlider::setValue);
/*年月日和时间*/
QDateEdit* dateEdit = new QDateEdit(QDate::currentDate(),this); //年月日框,并且默认显示当前年月日!
dateEdit->setCalendarPopup(true); //日历显示
QDate str;
str = dateEdit->date();
qDebug() << str;
QTimeEdit* timeEdit = new QTimeEdit(QTime::currentTime(), this); //时间显示框,并且默认显示当前时间
timeEdit->move(0, 20);
QDateTimeEdit* datetimeEdit = new QDateTimeEdit(QDateTime::currentDateTime(), this);
datetimeEdit->move(0, 40);
datetimeEdit->setCalendarPopup(true); //显示日历
/*LCD显示框*/
// QLCDNumber* lcd = new QLCDNumber(this);
// lcd->display("2018");
// lcd->setGeometry(20, 20, 200, 100); //设置大小和位置!
}
My_Widget::~My_Widget()
{
}
void My_Widget::receiveTextChange()
{
//qDebug() << "文本被修改!";
//将输入的内容转换成字符串str
QString str = textEdit->toPlainText();
//判断str中的内容
if (str.contains("123"))
{
//检测到123,则将str中的123替换成图片
str.replace("123", "<img src=:/picture/b_resume.png></img>");
//再将转换过后的str输出到文本框中
textEdit->setText(str);
}
}