一步步学Qt,第四天-Qt 建立MainWindow遇到的问题,也是常见GUI工具的问题

本文主要是介绍一步步学Qt,第四天-Qt 建立MainWindow遇到的问题,也是常见GUI工具的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一步步学Qt,第四天-Qt 建立MainWindow遇到的问题,也是常见GUI工具的问题



今天写了一个MainWidow,但是遇到的问题,很有意思,先看效果吧:(期望的效果)

结果我的结果是:

也就是,资源文件没有加载.

就在此刻,我突然的冒出来,是不是因为图片格式的问题?我里面改了一个试了试,此时的结果是



也就是说和资源的文件格式有关系,再试试试其他的部分,运行结果:

正常了 .在窗口中使用的资源在窗口中的呈现结果,和资源文件的文件格式有关系的.
之前使用的文件是ico文件,那么这个或许在那个时候是可以的,不过因为不稳定所以就不行了.
附上源代码:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();void loadFile(QString filename);int fileChanged();void saveFile();
private:Ui::MainWindow *ui;QString fileName;
private slots:void about();void newFile();void openFile();
};#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
#include <QFileDialog>
#include <QTextStream>
#include <QTextEdit>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);setCentralWidget(ui->textEdit);//action settingui->mainToolBar->addAction(ui->action_New);ui->mainToolBar->addAction(ui->action_Open);ui->mainToolBar->addAction(ui->action_Cut);ui->mainToolBar->addAction(ui->action_About);//slot settingconnect(ui->action_About,SIGNAL(triggered()),this,SLOT(about()));connect(ui->action_New,SIGNAL(triggered()),this,SLOT(newFile()));connect(ui->action_Open,SIGNAL(triggered()),this,SLOT(openFile()));
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::about()
{QMessageBox::about(this,tr("About this app"),tr("copyrigth by PowerLinux"));return;
}void MainWindow::newFile()
{int i = fileChanged();if(i == 1){int s = QMessageBox::question(this,tr("Asking"),tr("File is changed ,Save it?"),QMessageBox::Ok | QMessageBox::Cancel);if(s == QMessageBox::Ok){saveFile();}else{ui->textEdit->setText("");}}else{MainWindow *newWin = new MainWindow;newWin->show();}}void MainWindow::openFile()
{int i = fileChanged();if(i == 1){int s = QMessageBox::question(this,tr("Asking"),tr("File is changed ,are you sure?"),QMessageBox::Ok | QMessageBox::Cancel);if(s == QMessageBox::Ok){fileName = QFileDialog::getOpenFileName(this);if (!fileName.isEmpty()) {loadFile(fileName);}}}else{fileName = QFileDialog::getOpenFileName(this);if (!fileName.isEmpty()) {loadFile(fileName);}}
}void MainWindow::loadFile(QString filename){QFile file(filename);if(file.open(QIODevice::ReadOnly | QIODevice::Text)){QTextStream textStream(&file);while(!textStream.atEnd()){ui->textEdit->append(textStream.readLine());}}
}int MainWindow::fileChanged(){if(ui->textEdit->document()->isModified()){return 1;}else{return 0;}
}
void MainWindow::saveFile()
//! [44] //! [45]
{fileName = QFileDialog::getSaveFileName(this);if (!fileName.isEmpty()){QFile file(fileName);if (!file.open(QFile::WriteOnly | QFile::Text)) {QMessageBox::warning(this, tr("Application"),tr("Cannot write file %1:\n%2.").arg(fileName).arg(file.errorString()));}else{QTextStream out(&file);out << ui->textEdit->toPlainText();}}
}

<RCC><qresource prefix="/images"><file>images/accessories-text-editor.png</file><file>images/help-browser.png</file><file>images/internet-mail.png</file><file>images/office-calendar.png</file></qresource>
</RCC>

#-------------------------------------------------
#
# Project created by QtCreator 2011-08-27T13:54:14
#
#-------------------------------------------------QT       += core guiTARGET = widget
TEMPLATE = appSOURCES += main.cpp\mainwindow.cppHEADERS  += mainwindow.hFORMS    += mainwindow.uiRESOURCES += \app.qrcOTHER_FILES += \app.rc
RC_FILE +=\app.rc




这篇关于一步步学Qt,第四天-Qt 建立MainWindow遇到的问题,也是常见GUI工具的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/232352

相关文章

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

电脑蓝牙连不上怎么办? 5 招教你轻松修复Mac蓝牙连接问题的技巧

《电脑蓝牙连不上怎么办?5招教你轻松修复Mac蓝牙连接问题的技巧》蓝牙连接问题是一些Mac用户经常遇到的常见问题之一,在本文章中,我们将提供一些有用的提示和技巧,帮助您解决可能出现的蓝牙连接问... 蓝牙作为一种流行的无线技术,已经成为我们连接各种设备的重要工具。在 MAC 上,你可以根据自己的需求,轻松地

Java 中的跨域问题解决方法

《Java中的跨域问题解决方法》跨域问题本质上是浏览器的一种安全机制,与Java本身无关,但Java后端开发者需要理解其来源以便正确解决,下面给大家介绍Java中的跨域问题解决方法,感兴趣的朋友一起... 目录1、Java 中跨域问题的来源1.1. 浏览器同源策略(Same-Origin Policy)1.

如何清理MySQL中的binlog问题

《如何清理MySQL中的binlog问题》:本文主要介绍清理MySQL中的binlog问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目http://www.chinasem.cn录清理mysql中的binlog1.查看binlog过期时间2. 修改binlog过期

qtcreater配置opencv遇到的坑及实践记录

《qtcreater配置opencv遇到的坑及实践记录》我配置opencv不管是按照网上的教程还是deepseek发现都有些问题,下面是我的配置方法以及实践成功的心得,感兴趣的朋友跟随小编一起看看吧... 目录电脑环境下载环境变量配置qmake加入外部库测试配置我配置opencv不管是按照网上的教程还是de

如何解决yum无法安装epel-release的问题

《如何解决yum无法安装epel-release的问题》:本文主要介绍如何解决yum无法安装epel-release的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录yum无法安装epel-release尝试了第一种方法第二种方法(我就是用这种方法解决的)总结yum

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行

Python使用Turtle实现精确计时工具

《Python使用Turtle实现精确计时工具》这篇文章主要为大家详细介绍了Python如何使用Turtle实现精确计时工具,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录功能特点使用方法程序架构设计代码详解窗口和画笔创建时间和状态显示更新计时器控制逻辑计时器重置功能事件

IDEA实现回退提交的git代码(四种常见场景)

《IDEA实现回退提交的git代码(四种常见场景)》:本文主要介绍IDEA实现回退提交的git代码(四种常见场景),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.已提交commit,还未push到远端(Undo Commit)2.已提交commit并push到

python进行while遍历的常见错误解析

《python进行while遍历的常见错误解析》在Python中选择合适的遍历方式需要综合考虑可读性、性能和具体需求,本文就来和大家讲解一下python中while遍历常见错误以及所有遍历方法的优缺点... 目录一、超出数组范围问题分析错误复现解决方法关键区别二、continue使用问题分析正确写法关键点三