• 12725阅读
  • 23回复

有高人告诉我QT4.4 如何在屏幕上添加按钮或标签项吗? [复制链接]

上一主题 下一主题
离线oneke
 
只看楼主 正序阅读 楼主  发表于: 2008-09-03
— 本帖被 XChinux 执行加亮操作(2008-09-03) —
在目标板上运行程序,背景和鼠标都已经显示出来了,但添加的按钮控件和标签控件一直都显示不出来,卡在这已经很久了,有经验的高手帮帮我吧,感激不尽~!

我的代码如下:
#include <QApplication>
#include <QMessageBox>
#include <QTimer>
#include <QWSServer>
#include <QPushButton>
#include <QLabel>

int main(int argc, char **argv)
{
    QApplication app(argc, argv, QApplication::GuiServer);

    QLabel hello("Hello\n");
    hello.resize(100,30);
    hello.show();

    return app.exec();
}

没有出现所期望的标签项,不知道是什么原因,郁闷~
离线anmyt521
只看该作者 23楼 发表于: 2013-03-14
回 8楼(blackshirt) 的帖子
main.cpp:(.text+0x9d): undefined reference to `QWSServer::setBackground(QBrush const&)'
我执行了一下你的程序,报错了。
离线moper8759

只看该作者 22楼 发表于: 2009-06-16
#define QT3_SUPPORT
离线oneke
只看该作者 21楼 发表于: 2008-09-05
QT的源码包是gmake 和gmake install过了,然后在
examples/qws/mousecalibration/
下就有一个已经编译好了的执行文件 mousecalibration 我就是把这个文件拷到板子上运行的

板子启动系统的时候已经加载了uImage,驱动都没问题了,运行FrameBuffer的测试程序也是正常显示的



我重启配置了命令configure了一下,现在好像情况有所改变了,运行我的程序出现了:
Initializing QFontEngineQPF failed for /home/oneke/Application/lib/fonts/DejaVuSans.ttf

是不是字体没有安装呢?我已经把系统 home/oneke/Application/lib/fonts/ 下的所有文件,包括字体字体都拷到板子相同的目录下了,但还是出现了一样的提示~
[ 此贴被oneke在2008-09-05 10:02重新编辑 ]
离线blackshirt
只看该作者 20楼 发表于: 2008-09-04
你把板子通电后,到命令行,把QT的环境设置好后,就直接运行的测试程序??
没加载什么驱动什么的吗?
离线oneke
只看该作者 19楼 发表于: 2008-09-04
我用的是QT4.4.1,内核是另外一个同事配好的
离线blackshirt
只看该作者 18楼 发表于: 2008-09-04
我的确实没有显示.......,你是用的哪个包? 内核是你自己配的吗??
离线oneke
只看该作者 17楼 发表于: 2008-09-04
你的什么都不能显示??!!

是不是多打了一个字,大哥?!你是说什么都可以正常显示吧~
离线blackshirt
只看该作者 16楼 发表于: 2008-09-04
./configure -xplatform qws/linux-mips-g++ -embedded mips -no-largefile -little-endian -depths 4,8,16,32  -qt-gfx-linuxfb -qt-gif -qt-libpng -qt-zlib -qt-libmng -qt-libjpeg -no-nas-sound -no-opengl  -no-dwarf2
我的什么都不能显示。。。我用的开发包是qtopia-core-opensource-src-4.3.2.tar.gz  和你的不一样吧?
离线oneke
只看该作者 15楼 发表于: 2008-09-04
请问你是如何configure的?
我用的是君正的处理器
./configure -static -no-qvfb -xplatform qws/linux-mips-g++ -embedded mips -release -L /home/oneke/tools/mipseltools-gcc412-lnx26/lib

如果你的程序可以正常显示控件的话,麻烦把你的configure贴出来一下好吗?我参考一下,现在我是有些怀疑是我的configure有些问题。
离线blackshirt
只看该作者 14楼 发表于: 2008-09-04
哦,我再重新configure一下试试
离线oneke
只看该作者 13楼 发表于: 2008-09-04
回 12楼(blackshirt) 的帖子
在QT的目录lib下面有一个fonts目录,是不是把里面的字体文件拷到嵌入式板子的lib/fonts目录下面就可以了呢。
我已经试过了,还是白板


我的没有设置OSD的参数呀,不会是在configure的时候设置吧~
我把mode=640:480:32加在程序里面,编译通不过,报错
离线blackshirt
只看该作者 12楼 发表于: 2008-09-04
我也不知道啊,我没有设置什么参数,就是设置OSD显示
显示的时候是给规定了是 32位 640X480的分辨率了,你的呢?  mode=640:480:32
离线oneke
只看该作者 11楼 发表于: 2008-09-04
回 10楼(suraid) 的帖子
是呀,我最开始就是用的那段代码,只有一个背景和一个鼠标指针~

在没有字体的情况下,控件应该还是可以显示的吧。
离线suraid
只看该作者 10楼 发表于: 2008-09-04
连顶楼的那段代码都出不来?
是不是你没有正确安装字体啊?
SuRaid团队主要承接嵌入式、Web、美工、算法设计等业务

团队网址: http://www.suraid.cn
团队博客: http://blog.suraid.cn
团队邮箱: bbs@esuraid.com
离线oneke
只看该作者 9楼 发表于: 2008-09-04
不是吧,我把你的代码原封不动的Copy过去,运行时显示的是蓝色呀~
你是不是在别的地方又改动了设置呢?
你上面说的动了鼠标~?这段程序中貌似没有鼠标的事件驱动代码吧

还有就是这段代码在你的板上运行后,除了背景还有其它的控件显示吗?
离线blackshirt
只看该作者 8楼 发表于: 2008-09-04
我昨天那个还是不能正常显示图像,我的代码是这样,里面加了你说的那两个函数,帮看看
#include <QApplication>
#include <QFont>
#include <QWSServer>
#include <QPushButton>
#include <QPalette>
#include <QDesktopWidget>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv, QApplication::GuiServer);     
    //app.setGeometry(0,0,900,700);
   
    QPalette palette;
    QBrush *BackColor = new QBrush(QColor(58,110,160));    //设置背景颜色
    QWSServer::setBackground(*BackColor);    //应用背景颜色
    palette.setColor(QPalette::Active,static_cast <QPalette::ColorRole>(1),QColor(255,0,0));
   
    QPushButton quit("Quit");
    quit.setPalette(palette);
    quit.setAutoFillBackground(true);
   
    int screenWidthM=app.desktop()->size().width();
    int screenHeightM=app.desktop()->size().height();
    quit.setGeometry(0,0,screenWidthM,screenHeightM);
    quit.setFont(QFont("Times", 18, QFont::Bold));
    QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));
    quit.show();
    app.exec();
    return 0;

}
这样运行后还是 出下鼠标,然后绿屏....
离线oneke
只看该作者 7楼 发表于: 2008-09-03
哦,楼上的老兄,这个好像用不成
我用的是QT4.4的平台,已经取消了setMainWidget函数~

有人知道么?
[ 此贴被oneke在2008-09-04 09:19重新编辑 ]
离线fanzhichao

只看该作者 6楼 发表于: 2008-09-03
靠,我也被忽悠了,没看清就。。。
sorry,应该是
app.setMainWidget(&hello);
其实你看看例子就知道了。。。。
sigh。。。。
离线oneke
只看该作者 5楼 发表于: 2008-09-03
好像是setMainWindow函数吧,“W ” 是大写

但我加入了还是不行呢,编译报错
main.cpp: In function int main(int, char**);
main.cpp:70: error: class QApplication has no member named setMainWindow
make: *** [.obj/release-static-emb-mips/main.o] Error 1

我的代码片断如下:
    QLabel hello("Hello\n");
    hello.resize(100,30);
    hello.show();   
    app.setMainWindow(&hello);
不知道哪些地方还需作出修改,望有人再帮帮我~
离线radium_sql

只看该作者 4楼 发表于: 2008-09-03
哈哈。
QT什么时候替代MFC?
离线fanzhichao

只看该作者 3楼 发表于: 2008-09-03
晕死,他说的是
app.setMainwindow(&hello)
离线oneke
只看该作者 2楼 发表于: 2008-09-03
加入了,但编译就报错:

main.cpp: In function int main(int argc, char **argv)
main.cpp:67: error: setMainwindow was not declared in this scope
make: *** [.obj/release-static-emb-mips/main.o] Error 1


后来找到了在 /tools/shared/qttoolbardialog/qttoolbardialog.h 头文件中找到了这个函数,include也不行,还是报错,能告诉我怎么修改吗?
离线huangyi111
只看该作者 1楼 发表于: 2008-09-03
setMainwindow(&hello)
快速回复
限100 字节
 
上一个 下一个