基于Widget的项目,实现基本的调用对话框,至于这些对话框调用后的功能,会持续更新此文章!
先来看一下这几个组件的效果图。
1、QEditText的使用
借助Button来对第一个EditText的内容进行复制,复制到第二个EditText。在此过程中,侧重注意下怎样取EditText的内容和怎样设置EditText的值。
//第一个EditText
QTextEdit* outPutTextEdit = new QTextEdit(this);
//第二个EditText
QTextEdit* copyTextEdit = new QTextEdit(this);
outPutTextEdit->resize(200,40);
outPutTextEdit->move(20,20);
copyTextEdit->resize(200,40);
copyTextEdit->move(20,70);
QPushButton* inPutBtn = new QPushButton(this);
QPushButton* outPutBtn = new QPushButton(this);
inPutBtn->setText("输入");
outPutBtn->setText("输出");
inPutBtn->move(20,120);
outPutBtn->move(140,120);
connect(inPutBtn,&QPushButton::clicked,[=](){
if(outPutTextEdit->document()->isEmpty()){
outPutTextEdit->setText("请输入正确账号或密码");
copyTextEdit->setText("请输入正确账号或密码");
}else {
copyTextEdit->setText(outPutTextEdit->toPlainText().toUtf8().data());
}
});
//要把输出Btn绑定:将内容打印到控制台
connect(outPutBtn,&QPushButton::clicked,[=](){
if(!outPutTextEdit->document()->isEmpty()||!copyTextEdit->document()->isEmpty()){
qDebug()<<"账号:"<<outPutTextEdit->toPlainText().toUtf8().data();
qDebug()<<"密码:"<<copyTextEdit->toPlainText().toUtf8().data()<<Qt::endl;
}else {
qDebug()<<"请您输入账号或密码";
}
});
document()
方法通常用于从窗口部件(Widget)中获取文档对象。这个方法在许多具有文本内容的窗口部件类中都存在,比如QTextEdit
、QTextBrowser
等。这个方法返回窗口部件中当前显示的文档对象的指针,您可以使用这个文档对象来操作文本内容、格式等。
QTextEdit *textEdit = new QTextEdit(this);
QTextDocument *doc = textEdit->document(); // 获取文档对象
一旦您获取了文档对象,您就可以使用QTextDocument
类提供的方法来操作文本内容、格式等。例如,您可以使用setPlainText()
、setHtml()
来设置文本内容,使用toPlainText()
来获取纯文本内容等等。
toPlainText()
方法是用于从Qt的富文本编辑器类(例如QTextEdit)中获取纯文本的方法。这个方法返回编辑器中当前文本的纯文本形式。
toUtf8()
方法用于将QString对象转换为UTF-8编码的QByteArray对象。
data()
方法通常用于获取对存储在不可变或可变缓冲区中的数据的访问。这种缓冲区的常见类型包括 QByteArray、QBuffer 和 QFile。data()
方法允许您以不同的方式访问这些数据,具体取决于所使用的类。需要注意的是,对于只读的 QByteArray 或 QBuffer,data()
返回的指针是常量的,因此不能用于修改数据。如果需要修改数据,可以使用 QBuffer::buffer()
方法获取一个可写的缓冲区。
而设置EditText的值,直接使用setText()就好。
2、QFileDialog的使用
QPushButton* openFileBtn = new QPushButton(this);
openFileBtn->setText("打开文件");
connect(openFileBtn,&QPushButton::clicked,this,[=](){
QString fileName = QFileDialog::getOpenFileName(this, tr("打开文件"),
"C:\\",
"*");
qDebug()<<fileName; //目前只是在控制台输出了文件的路径,如需要对该文件有
//其他操作操作fileName这个变量即可
});
3、QColorDialog的使用
QPushButton* seleColorBtn = new QPushButton(this);
seleColorBtn->setText("选择颜色");
connect(seleColorBtn,&QPushButton::clicked,this,[=](){
QColor color = QColorDialog::getColor(Qt::magenta,this,"选择颜色");
qDebug()<<color;
});
同理,控制台输出了color对象保存的所选择的ARGB数据,如果有其他操作,可以使用color对象继续后续的操作。