找回密码
 立即注册
收起左侧
楼主: yafeilinux

第6篇 基础(六)实现Qt文本编辑功能

154
回复
147602
查看
  [复制链接]
累计签到:16 天
连续签到:1 天
2016-2-26 16:14:38 显示全部楼层
本帖最后由 a35566 于 2016-2-26 16:42 编辑

关于几个action和槽的绑定,感觉用
  1. connect(ui.action_N, SIGNAL(triggered()), this, SLOT(newFile()));
复制代码
这么说会更直观一点,几个相应的函数记得在类声明里放到slots里头。
回复 支持 反对

使用道具 举报

累计签到:8 天
连续签到:1 天
2016-2-27 18:37:32 显示全部楼层
先保存了文件,然后再按新建,还是会提示要另存为。
if(ui->textEdit->document()->isModified())
这个判断条件是不是有点不太合适或者不完整?
回复 支持 反对

使用道具 举报

累计签到:1628 天
连续签到:1 天
2016-2-28 17:10:39 显示全部楼层
so_cracy 发表于 2016-2-27 18:37
先保存了文件,然后再按新建,还是会提示要另存为。
if(ui->textEdit->document()->isModified())
这个判断 ...

嗯,这里只是简单演示如何操作,逻辑上可能不是很严禁,如果自己要实现相应功能,可以测试后修改。
回复 支持 反对

使用道具 举报

累计签到:16 天
连续签到:1 天
2016-3-3 10:31:25 显示全部楼层
close函数直接设置控件为不可见是不是太草率了……
不是有个保存文件路径的变量么,用QFile里头的close好点吧。
  1. bool textedit::closeFile()
  2. {
  3.     if (maybeSave())
  4.     {
  5.         QFile file(curFile);
  6.         file.close();
  7.         setWindowTitle(tr("请打开或新建一个文件"));
  8.         ui.textEdit->setVisible(false);
  9.         return true;
  10.     }
  11.     else
  12.         return false;
  13. }
复制代码
回复 支持 反对

使用道具 举报

累计签到:1628 天
连续签到:1 天
2016-3-3 10:44:41 显示全部楼层
a35566 发表于 2016-3-3 10:31
close函数直接设置控件为不可见是不是太草率了……
不是有个保存文件路径的变量么,用QFile里头的close好点 ...

嗯。因为只是讲解知识,不是编写软件,所以很多地方进行了简化。
回复 支持 反对

使用道具 举报

尚未签到

2016-3-13 20:18:21 显示全部楼层
yafeilinux 发表于 2013-4-25 22:08
不应该啊,代码可以的,看是不是函数调用错误,或者使用了中文字符串,而没有设置字符集 ...

楼主   好像QT5.0里面没有设置字符集的函数了   是吗 ??  
回复 支持 反对

使用道具 举报

累计签到:1628 天
连续签到:1 天
2016-3-15 21:26:50 显示全部楼层
382904369 发表于 2016-3-13 20:18
楼主   好像QT5.0里面没有设置字符集的函数了   是吗 ??

恩。可以直接使用。
回复 支持 反对

使用道具 举报

累计签到:3 天
连续签到:1 天
2016-3-17 15:43:39 显示全部楼层
一直出错 UI::MainWindow 没有textEdit,只差这一点了,求大神指教
回复 支持 反对

使用道具 举报

累计签到:3 天
连续签到:1 天
2016-3-17 15:51:28 显示全部楼层
一直出错 UI::MainWindow 没有textEdit  只差这一点,是因为用的是Qt5吗?要怎么改?
回复 支持 反对

使用道具 举报

累计签到:1628 天
连续签到:1 天
2016-3-20 17:26:50 显示全部楼层
studyqt 发表于 2016-3-17 15:51
一直出错 UI::MainWindow 没有textEdit  只差这一点,是因为用的是Qt5吗?要怎么改? ...

恩。教程是基于Qt 4.8的,如果你用Qt 5,后面的教程还会出现各种问题。
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2016-3-28 21:58:29 显示全部楼层
caikeyter 发表于 2013-6-1 14:22
OK,没问题。就是,ui->textEdit........这些没有提示。包括 textEdit 都提示不了,不知道为什么。智能提示 ...

ui -> textBrowser -> clear();可以
回复 支持 反对

使用道具 举报

累计签到:5 天
连续签到:1 天
2016-4-23 23:08:35 显示全部楼层
不知道为什么 未命名.txt 显示乱码  加tr 或Qstring 都不行   用的是最新5.6.0版本  只有改成为16进制码才行- -   
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2016-5-6 16:51:48 显示全部楼层
对我帮助很大。
1. 编辑文件
2. close(),选择不保存
3. 再打开的时候会提示文件未保存。这个增加了一个变量解决了。
回复 支持 反对

使用道具 举报

累计签到:6 天
连续签到:1 天
2016-5-11 16:27:45 显示全部楼层
关闭函数逻辑有点问题,关闭前应该clear下,ui->textEdit->clear();
不然“新建”的时候还会提示保存
回复 支持 反对

使用道具 举报

累计签到:8 天
连续签到:1 天
2016-6-18 17:13:09 显示全部楼层
有时会有错误
D:\QT\myMainWindow-build-desktop-Qt_4_8_1__4_8_1____\..\myMainWindow\mainwindow.cpp:32: 错误:'class Ui::MainWindow' has no member named 'textEdit'
原因是:
这里的textEdit指的是控件的objectName,即对象名。错误提示是没找到textEdit,所以你检查一下有没有这个叫textEdit的控件。有时创立多个textEdit控件,有的控件对象名就成了textEdit_2,textEdit_3等等,需要改成对应的对象名
回复 支持 反对

使用道具 举报

累计签到:12 天
连续签到:1 天
2016-6-27 22:01:43 显示全部楼层
按照教程一步一步学习到好多东西,谢谢楼主!
回复 支持 反对

使用道具 举报

累计签到:6 天
连续签到:1 天
2016-7-4 20:38:15 显示全部楼层
已经做到第七篇了,感觉写的非常清晰,很有用
回复 支持 反对

使用道具 举报

累计签到:6 天
连续签到:1 天
2016-7-5 10:03:09 显示全部楼层
楼主,我用的是5.6.1遇到了中文提示乱码的情况,网上资料很少的,你知道怎么解决这个问题么?
回复 支持 反对

使用道具 举报

累计签到:20 天
连续签到:1 天
2016-7-6 16:27:01 显示全部楼层
caikeyter 发表于 2013-6-1 14:22
OK,没问题。就是,ui->textEdit........这些没有提示。包括 textEdit 都提示不了,不知道为什么。智能提示 ...

我的也是,不知道为什么
回复 支持 反对

使用道具 举报

累计签到:20 天
连续签到:1 天
2016-7-6 16:31:41 显示全部楼层
楼主,想问下我按照你的做的,能运行,当时所有含有中文的地方都出现了乱码,不知道怎么解决,我的Qt4.8.5,Qt Creator 2.8.0,window10系统,不知道怎么解决。@yafeilinux  
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了