QT学习笔记

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);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值