Qt QPlainTextEdit的软换行怎么得到我想把它换成硬换行,能否实现

Qt QPlainTextEdit的软换行怎么得到我想把它换成硬换行,能否实现,第1张

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)显示很多的内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9700393.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存