qt开发linux程序实战案例?(简单app开发全过程)

发布日期:2025-10-13 15:25浏览次数:

昨儿个心血来潮想试试用QT给Linux整个简单APP玩玩,正好记录下全过程当个备忘录,折腾一趟可太有意思了。

起手式:开搞前准备

先是蹬进咱们的Ubuntu终端,噼里啪敲安装命令。用惯了apt就靠它: sudo apt install qtcreator qtbase5-dev

装完顺手敲了个qmake -v看看版本,确认这顿饭家伙已经摆上桌了才安心。

打开QT Creator这玩意儿,点左上角的"文件" → "新建" → "QT Widgets应用",就跟开盲盒似的。项目名随手填了个TextEditDude,路径丢在文档里,编译器嘛系统自带的G++够用就行。

折腾界面:拖拖拽拽搞装修

新建完就瞅见那个设计模式的图标(长得像个油漆刷子),点进去开整!先从左边控件箱薅了个Text Edit(大文本框)丢到窗口正中间,又拖了个Horizontal Layout(水平布局)压到文本框底下当底座。

接着往底座上塞家伙:

  • Push Button按钮:搞了三个,分别双击改名叫“打开”、“保存”、“清空”
  • 一个弹簧(Spacer)撑开空间,省得按钮挤成一团打架
  • 最右边再丢个Push Button叫“退出”

布局点一点那个绿色的垂直排列按钮,完事儿整个界面看着顺眼多了,不会乱跑变形。

上硬菜:写代码让按钮活起来

切回编辑模式,对着主窗口空白处右键 → 转到槽,找到"退出"按钮的clicked()信号。 啪! Creator自动在源文件生成了个槽函数,往里塞一行简单粗暴的: this->close(); // 点退出直接关窗口

接着搞“清空”按钮:同样转到槽选clicked(),代码里写: ui->textEdit->clear(); // 清空文本框神器

重头戏是文件读写!

先给“打开”按钮写槽:

void MainWindow::on_openBtn_clicked()

QString fileName = QFileDialog::getOpenFileName(this, "开个文本", ".", "文本文件 (.txt)");

if (*()) return;

QFile file(fileName);

if (!*(QIODevice::ReadOnly QIODevice::Text)) return;

ui->textEdit->setText(*());

“保存”按钮也差不多套路:

void MainWindow::on_saveBtn_clicked()

QString fileName = QFileDialog::getSaveFileName(this, "存哪儿", ".", "文本文件 (.txt)");

if (*()) return;

QFile file(fileName);

if (!*(QIODevice::WriteOnly QIODevice::Text)) return;

*(ui->textEdit->toPlainText().toUtf8());

重点来了! 保存时忘记转成Utf8编码的话,中文直接变火星文,这个坑我踩得结结实实。

临门一脚:编译跑起来

点左下角绿色三角开跑!界面弹出来那瞬间真舒坦。测试流程走一波:

  • 文本框里乱敲“测试文本123测试文本”
  • 点保存,存成*
  • 再点清空,文字咻地没了
  • 点打开选*,字又蹦回来了!

顺手点退出,窗口秒关,舒服!

填坑实录:那些让我挠头的瞬间

坑位1: 刚开始按钮死活点不动,翻代码发现忘记在构造函数里挂载信号槽,手动补了一行connect才救活。后来发现Creator能自动挂,是我眼神不好没勾选。

坑位2: 文件保存成功但打开空白?折腾半小时发现文件操作权限没开够,QIODevice::WriteOnly后面漏了Text模式,补上才灵。

坑位3: 编译成品文件贼大(80MB+),搜了下发现要用linuxdeployqt打包瘦身。这活儿改天单独开一篇唠。

整完这个玩具APP,愈发觉得QT搞Linux桌面是真香。虽然踩坑疼,但解决问题的快感比喝冰可乐还爽!

如果您有什么问题,欢迎咨询技术员 点击QQ咨询