Qt中的常用插件

myWidget.cpp文件

#include "mywidget.h"
#include "ui_mywidget.h"

#include 
#include 
#include 
#include 

myWidget::myWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::myWidget)
{
    ui->setupUi(this);

    this->setFixedSize(320,480);//窗口大小固定,无法改变
    QPixmap icon(":/Sources/b_resume.png");//新建图片资源

    /*设置图标按钮*/
    QPushButton* myButton = new QPushButton(this);
    myButton->move(100,100);
    myButton->setIcon(icon);
    //myButton->setIcon(QPixmap(":/Sources/b_resume.png"));
    myButton->setFixedSize(icon.size());//设置按钮大小
    myButton->setIconSize(icon.size());//设置图标大小
    myButton->setFlat(true);//去掉边框
    connect(myButton, &QPushButton::pressed,
            [=]()
            {
                qDebug()<<"按钮被点击";
            }
        );

    /*label: 标签、显示静态文本、图片和网页url, 支持html格式*/
    QLabel* label3 = new QLabel(this);
    label3->move(200, 10);
    //显示静态文本
    label3->setText("

label3

"
);//h1~h6表示不同的网页字体 QLabel* label = new QLabel(this); //显示网页url label->setText("baidu"); label->move(10,20); connect(label, &QLabel::linkActivated, [](QString str) { QDesktopServices::openUrl(QUrl(str));//调用服务打开浏览器 } ); //显示图片 QLabel* label2 = new QLabel(this); label2->setText(""); //lable2->setText(icon); label2->move(10,40); /*单行文本输入框*/ QLineEdit* lineEdit = new QLineEdit(this); lineEdit->setEchoMode(QLineEdit::Password);//密码输入时变为圆点 //lineEdit->setCompleter(参数不知道);//输入时自动匹配 lineEdit->setPlaceholderText("请输入密码");//提示文本,淡灰色,用户输入时消失 lineEdit->setClearButtonEnabled(true);//开启清除按钮 lineEdit->setMaxLength(8);//设置文本最大长度 connect(lineEdit,&QLineEdit::returnPressed, [=]() { qDebug()<text();//按下回车时读取文本 } ); /*多行文本输入, 富文本:内容可以为图片*/ textEdit = new QTextEdit(this); textEdit->move(10,200); textEdit->setMaximumHeight(40); connect(textEdit, &QTextEdit::textChanged, this, &myWidget::recvTextChange);//文本发生改变时发出信号 /*平文本,不可输入图片*/ //QPlainTextEdit* plainTextEdit = new QPlainTextEdit(this); /*单选框, 同组单选框互斥*/ QRadioButton* b1 = new QRadioButton(this); b1->setText("吃1"); b1->setChecked(true);//设置初始值 b1->move(10,250); QRadioButton* b2 = new QRadioButton(this); b2->setText("吃2"); b2->move(10,270); QRadioButton* b3 = new QRadioButton(this); b3->setText("吃3"); b3->move(10,290); QRadioButton* b4 = new QRadioButton(this); b4->setText("喝1"); b4->move(100,250); QRadioButton* b5= new QRadioButton(this); b5->setText("喝2"); b5->move(100,270); QRadioButton* b6 = new QRadioButton(this); b6->setText("喝3"); b6->move(100,290); //给RadioButton分组, b1~b3属于myWidget QButtonGroup* box = new QButtonGroup(this); box->addButton(b4); box->addButton(b5); box->addButton(b6); b4->setChecked(true); /*复选框*/ QCheckBox* checkBox = new QCheckBox("吃饱了",this); checkBox->move(10,320); connect(checkBox,&QCheckBox::stateChanged, [=](int value) { qDebug()<isChecked()<//value==表示未选中,2表示选中,1表示不可选 } ); /*下拉选择框*/ QComboBox* comboBox = new QComboBox(this); comboBox->move(100, 320); comboBox->addItem("吃鸡"); comboBox->addItem("吃土"); comboBox->addItem("吃素"); comboBox->setCurrentIndex(1);//设置默认值,Index和Text是一一对应的 connect(comboBox, &QComboBox::currentTextChanged, [=](QString str) { qDebug()<<str;//打印出选项字符串 } ); /*滑块*/ QSlider* slider = new QSlider(this); slider->setOrientation(Qt::Horizontal); slider->move(10, 340); slider->setMinimum(1); slider->setMaximum(99); slider->setValue(50);//设置初始值 /*拨码选择块*/ QSpinBox* spinBox = new QSpinBox(this); spinBox->move(10+slider->size().width(), 340);//关联位置 spinBox->setMinimum(1); spinBox->setMaximum(99); spinBox->setValue(50); /*Slider通常和SpinBox联合使用*/ connect(slider, &QSlider::valueChanged, spinBox, &QSpinBox::setValue); void (QSpinBox::*pFunc)(int) = QSpinBox::valueChanged; connect(spinBox, pFunc, slider, &QSlider::setValue);//SpinBox的valueChanged有重载 /*日期*/ QDateEdit* dateEdit = new QDateEdit(QDate::currentDate(),this);//添加currentTime使dateEdit出现时显示当前日期 dateEdit->move(10, 370); dateEdit->setCalendarPopup(true);//设置时间时打开日历 /*时间*/ QTimeEdit* timeEdit = new QTimeEdit(QTime::currentTime(),this); timeEdit->move(30+dateEdit->size().width(),370); //timeEdit->setCalendarPopup(true);//timeEdit无法打开日历,此句无效 /*日期时间*/ QDateTimeEdit* dateTimeEdit = new QDateTimeEdit(QDateTime::currentDateTime(), this); dateTimeEdit->move(10, 400); dateTimeEdit->setCalendarPopup(true); qDebug()<date(); qDebug()<date().year()<<" "<date().month()<<" "<date().day(); qDebug()<time(); qDebug()<time().hour()<<" "<time().minute()<<" "<time().second(); qDebug()<dateTime(); qDebug()<date().year()<<" "<time().hour(); /*设置数码管显示插件*/ QLCDNumber* lcdNum = new QLCDNumber(this); lcdNum->display("2018");//LcdNumber只能作为输出显示东西 lcdNum->setGeometry(10,425,100,50); /*设置窗口标题*/ this->setWindowIcon(QPixmap(":/Sources/props_paint.png")); /*设置窗口背景*/ } myWidget::~myWidget() { delete ui; } void myWidget::recvTextChange() { QString str = textEdit->toPlainText(); if(str.contains("aaa"))//当出现“aaa”,将其替换为一张图片 { str.replace("aaa",""); textEdit->setText(str); } } void myWidget::paintEvent(QPaintEvent* p)//重载函数以设置背景图片;重绘窗口,自动调用 { QPainter painter(this); painter.drawPixmap(0,0,width(),height(),QPixmap(":/Sources/props_paint.png")); }

你可能感兴趣的:(C++,Qt)