qt如何实现点击按钮打开指定文档?

qt如何实现点击按钮打开指定文档?,第1张

connect(m_HelpAct, SIGNAL(triggered()), this, SLOT(OnHelp()));

实现槽函数:

void CXXX::OnHelp(){

QString runPath = QCoreApplication::applicationDirPath(); //获取exe路劲。

QString helpName = "帮助文档pdf";

QString helpPath = QString("%1/%2")arg(runPath)arg(helpName);

QFile bfilePath(helpPath);

if(!bfilePathexists()){

return;

}

QString filePath = "file:///" + helpPath; //打开文件夹用filse:///,打开网页用http://

QDesktopServices::openUrl(QUrl::fromLocalFile(filePath));

呵呵,多半是因为你的对象这时还没有实例化。

比如

qWidget a;

a = new QWidget(this);

你多半没有第二句对a进行实例化。

qt切换界面只显示一个方法。

1、建立一个Qwidget工程,在ui里面添加一个按钮button和一个标签label,右键项目名称,在d出的选项中选择添加新文件。

2、选择QT->Qt设计师界面类,点击右下方choose,选择widget,点击右下方下一步,自己给这个窗体取一个名字,点击下一步(如此便创建成功第二个界面和它的头文件和源文件)。

3、重复上面2-5步建立第三个窗体文件,最后工程里面应该一共包括有以下文件,工程里widgetui是第一个界面,secondform是第二个界面,thirdform是第三个界面

4、在第二个、第三个界面中放入控件第二个界面放入两个按钮pushbutton和一个标签label。第三个界面放入一个按钮pushbutton和一个LCDnumber。各个窗体头文件定义,所有槽函数定义对应于要实现的功能,对应于各个按钮按下后要实现的事件,在第一个Widget的头文件中定义一个处理跳转到第二个界面的槽函数doprocessclickgotosecondform(bool)和一个接收来自第二个界面发送请求信号的槽函数doprocesssecondformrequest(QString)。在第二个窗体头文件里定义跳转到第一个和第三个窗体的槽函数doProcessClickBackToFirstForm(bool)、doProcessClickGoToThirdForm(bool),还有从第三个界面发送来的显示第二个界面的槽函数doProcessShowSecondForm()。第三个窗体头文件中定义一个跳转到第二个界面的槽函数doprocessbacktosecondform()和一个定时器的超时槽函数doprocesstimeout()。

5、对各个槽函数的实现,在各个窗体对应的源程序中进行实现,对所有代码都有详细的注释和说明第一个窗体。QT多个窗体切换显示就实现,第一个界面的下方按钮可以点击跳转到第二个界面,第二个界面下方可以选择跳转到第一个或者到第三个界面,第三个界面下方有一个返回第二个界面的按钮,实现各个页面的跳转显示且每次只会显示一个界面。

C source file的实现。

#include "objh"

int main(const int argc, const char argv){

void temp_obj = getObj(100);

printString(temp_obj);//实现C语言调用QT/C++UI界面

return (0);

}

写一个C++ source file和c source file都可以共同包含的头文件,如下所示。

#include <stdinth>

#ifdef __cplusplus

class Obj{

public:

Obj(int32_t a=50)

~Obj();

std::string toString();

private:

int32_t k;

};

#endif

#ifdef __cplusplus

extern "C" {

#endif

void getObj(int32_t a);

void destroyObj(void obj);

void printString(void obj);

#ifdef __cplusplus

}

#endif

C++ source file的实现,其中C语言函数是供C source file调用的。

#include <iostream>

#include <sstream>

#include <iomanip>

#include <stdinth>

#include "objh"

Obj::Obj(int32_t a){

k = a << 1;

}

Obj::~Obj(){

/ don't really need to do anything here /

/ k = 0 only for example purposes /

k = 0;

}

std::string Obj::toString(){

std::ostringstream os;

os << "Obj is currently: " << this->k << std::endl;

return osstr();

}

void getObj(int32_t a){

Obj out = new Obj(a);

return ((void)out);

}

void destroyObj(void obj){

delete (((Foo)obj));

}

void printString(void obj){

std::string s = ((Obj)obj)->toString();

std::cout << s;

}

Makefile

make file的实现。

CC = gcc

CXX = g++

CFLAGS = -O0 -g

CXXFLGS = -00 -g

OBJ = main obj

OBJS = $(addsuffix o,$(OBJ))

all:

make compile

compile:

make $(OBJS)

make objexe

fooexe: $(OBJS)

$(CXX) -o fooexe $(OBJS)

maino: mainc

$(CC) -c -o maino mainc

objo: objcpp

$(CXX) -c -o objo objcpp

clean:

rm -rf $(OBJS) objexe dSYM

QPalette pal;

pal = ui->textBrowser->palette();

palsetColor(QPalette::Base, QColor(0,255,0));//改变背景色

ui->textBrowser->setPalette(pal);

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

原文地址: http://outofmemory.cn/langs/12181250.html

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

发表评论

登录后才能评论

评论列表(0条)

保存