Qt在使用表格时如果文本太长就会显示不全。这时候就需要用到自动换行。
QTableView有函数设置自动换行:void setWordWrap(bool on)
然而当我们调用setWordWrap(true)时却发现没有换行效果。
原来它只负责控制是否换行,但是并不能改变单元格的高度。单元格高度不够就无法
换行了。因此我们需要改变行高即可。在设置完数据后调用
qt
QT 文件读写及信息打印
GoKu~
原创
关注
0点赞·198人阅读
一、QFile 对文件进行读写 *** 作
1、 QFile进行读写 *** 作
2、 QFile file( path 文件路径)
3、 读
(1) fileopen(打开方式) QIODevice::readOnly
(2) 全部读取 filereadAll() 按行读 filereadLine() atend()判断是否读到文件尾
(3)默认支持编码格式 utf-8
(4)利用编码格式类 指定格式 QTextCodeC
(5)QTextCodec codec = QTextCodec::codecForName(“gbk”);
(6) ui->textEdit->setText( codec->toUnicode(array) );
(7)文件对象关闭 close
4、 写
(1) fileopen( QIODevice::writeOnly 或 Append)
(2) filewrite(内容)
(3) fileclose 关闭
会调用scrollarea窗口显示,窗口大小能根据大小自动调整,但是最大为1024768,过大就要有滚动条来显示
mainwindow中点击“显示”调用scrollarea窗口,下面的函数是被一个按钮的槽函数调用的
void MainWindow::Show_Image_byname(char filename)
{
if(!filename || !strlen(filename))
{
return;
}
char buf[128]= {0};
strcpy(buf,SAVE_IMAGE);
strcat(buf,filename);
ScrollArea new_image = new ScrollArea();
new_image->set_image(buf);
new_image->setBackgroundRole(QPalette::Dark);
new_image->show();
return;
}
添加文件scrollareaui文件,画出一个scrollarea
在生成的scrollareah中添加私有成员QLabel
private:
Ui::ScrollArea ui;
QLabel label;
在析构函数中添加内存释放
ScrollArea::~ScrollArea()
{
delete ui;
if(label)
{
delete label;
}
}
在生成的scrollareacpp中添加显示实现函数
void ScrollArea::set_image(char filename)
{
QImage ppm = new QImage(filename);
label = new QLabel();
printf("ppm->width()=%d, ppm->height()=%d\n",ppm->width(), ppm->height()); //获取的宽度和高度
label->setPixmap(QPixmap::fromImage(ppm));
this->setWidget(label);
/设置窗口最大高度和宽度为1024768/
this->setMaximumHeight(768);
this->setMaximumWidth(1024);
this->resize(QSize( ppm->width()+5, ppm->height() +5));
return;
}
可以使用QTextEdit类定义的textChanged()信号。
这个信号会在文本发生变化时发出,可以用来检测文本发生了变化,然后执行相应的 *** 作。
例如:
void myClass::onTextEditChanged()
{
//do something
}
connect(textEdit, SIGNAL(textChanged()), this, SLOT(onTextEditChanged()));
QT中LineEdit、TextEdit、PlainTextEdit这三个控件区别为:输入内容不同、用途不同、限制行数不同。
一、输入内容不同
1、LineEdit:LineEdit的输入内容为单行文本输入。
2、TextEdit:TextEdit的输入内容为多行文本输入。
3、PlainTextEdit :PlainTextEdit的输入内容为多行文本输入。
二、用途不同
1、LineEdit:LineEdit多用于用户名、密码等少量文本交互地方。
2、TextEdit:TextEdit多用于显示较多信息展示的地方,也可以显示HTML格式文本。
3、PlainTextEdit :PlainTextEdit用于需要与文本进行处理的地方。
三、限制行数不同
1、LineEdit:LineEdit只能显示的单行内容。
2、TextEdit:TextEdit可以限制显示的最大的行数。
3、PlainTextEdit :PlainTextEdit不能限制显示的最大的行数。
连接串口时绑定信号和槽。
为了能在接收到串口发送的数据便即时显示在文本框中,首先要在连接串口时绑定信号和槽,即将serialport的signal(QIODevice::readyRead)与this的槽函数SePort::ReadCom连接在一起,这样,一旦serialport的准备读取数据信号过来时,就会调用自定义的ReadCom函数,把缓存区的数据读取到私有成员变量m_bReceiveData中。为了能在界面上显示,我们将暴露一个接口GetUsePort()以便于上层函数获得使用的串口serialport,然后自定义函数ShowData()将读取的数据实时显示在串口中。
Qt是一个1991年由QtCompany开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(MetaObjectCompiler,moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。
以上就是关于Qt QPlainTextEdit的软换行怎么得到我想把它换成硬换行,能否实现全部的内容,包括:Qt QPlainTextEdit的软换行怎么得到我想把它换成硬换行,能否实现、使用qt获取.txt数据并打印出来、QT如何使用scrollarea和Label(或者TextEdit)显示很多的内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)