• 5915阅读
  • 8回复

能用QT designer 设计一个widget 吗? [复制链接]

上一主题 下一主题
离线cyberpunker
 

只看楼主 倒序阅读 楼主  发表于: 2014-04-01


  我是个新手,摸了几天QT,把框架弄出来了

我的需求是这样的,

现在有一个很多控件的界面需要设计( 在tab 页上要堆很多的控件),用代码弄感觉很麻烦 。 今天用QT designer 堆出来了, 也把 *.ui 转换成了 *.h ,

现在面临的问题是怎么弄到我的工程里去,因为这个界面需要在我最终的GUI上出现若干份(若干个tab),所以我想能否把这个 *.ui 弄成一个控件, 我可以直接把这个控件通过 addTab()放到我的 界面里边来。

简单的说,就是怎么把*.ui 转换成的*.h 变成一个 *.h 和*.cpp 的类,可以直接来用?
----------------------------------------------------------------------------------------------------------------------
或者,我这个思路对不对? 是不是有好的办法?
  
    
  
离线realfan

只看该作者 1楼 发表于: 2014-04-01
QTabWidget作为多个Tab容器,将你的界面放到tab面中就行了
QTabWidget * pTabWidget= new QTabWidget(...)
pWnd为你的界面窗口指针
    pTabWidget->addTab(pWnd, QIcon(":/res/2_32.png"), tr("Tab标题"));
    pTabWidget->setCurrentWidget(pWnd);
既然你已经生成的窗口的类,创建实例就行了呀
离线cyberpunker

只看该作者 2楼 发表于: 2014-04-01
回 realfan 的帖子
realfan:QTabWidget作为多个Tab容器,将你的界面放到tab面中就行了
QTabWidget * pTabWidget= new QTabWidget(...)
pWnd为你的界面窗口指针
    pTabWidget->addTab(pWnd, QIcon(":/res/2_32.png"), tr("Tab标题"));
     .. (2014-04-01 21:25) 


可能我说的还不够清楚,

是这样的,我有多个、一样的tab页要生成,每个tab页的放置的控件很多很繁杂,

现在就是要解决怎么样往tab页上放东西的问题,就是addtab()怎么个方便的问题,

我是想把要放置到tab页上的那一堆控件,做成一个“widget”, 然后直接addtab()就好了,

我现在用 QT desinger生成了一个 模子,想把这个模子转换成这个“widget” ,然后直接用addtab()往tab控件上放了,

离线dbzhang800

只看该作者 3楼 发表于: 2014-04-02
回 cyberpunker 的帖子
cyberpunker:可能我说的还不够清楚,
是这样的,我有多个、一样的tab页要生成,每个tab页的放置的控件很多很繁杂,
....... (2014-04-01 22:06) 

你的要求其实很容易实现。

假定你用designer设计了一个 界面 A.ui 那么你需要创建与之配套的 A.h/A.cpp,即你创建一个widget控件 A

而后你有创建了一个界面B,与之相随的是B.h/B.cpp

假设在界面B中,你需要添加10个相同的A控件。此时,A控件是designer设计的,还是纯代码编写的,对你已经没有什么影响。有两种常用的方法

1. 在B.h/B.cpp 中直接添加。

2. 在B.ui 中添加空的widget,而后将空widget提升为 A
离线cyberpunker

只看该作者 4楼 发表于: 2014-04-02
回 dbzhang800 的帖子
dbzhang800:你的要求其实很容易实现。
假定你用designer设计了一个 界面 A.ui 那么你需要创建与之配套的 A.h/A.cpp,即你创建一个widget控件 A
....... (2014-04-02 09:26) 


谢谢,看来我的思路是可以的,

现在是有个问题, 用QT designer 设计的UI转化成 *h 后,怎么改能改成所需要的 widget 呢?

它转化出来的是 setupui( ) 那种形式,怎么改写成一个类?
离线dbzhang800

只看该作者 5楼 发表于: 2014-04-02
.ui 的用法有多种,最常用的是 The Single Inheritance Approach

具体你可以用Qt Creator或 Qt Assistant 查看Qt自带手册

http://qt-project.org/doc/qt-5/designer-using-a-ui-file.html
4条评分好评度+1贡献值+1金钱+10威望+1
cyberpunker 好评度 +1 优秀文章,支持!n神马都是浮云 2014-04-16
cyberpunker 贡献值 +1 优秀文章,支持!n神马都是浮云 2014-04-16
cyberpunker 威望 +1 优秀文章,支持!n神马都是浮云 2014-04-16
cyberpunker 金钱 +10 优秀文章,支持!n神马都是浮云 2014-04-16
离线cyberpunker

只看该作者 6楼 发表于: 2014-04-02
回 dbzhang800 的帖子
dbzhang800:.ui 的用法有多种,最常用的是 The Single Inheritance Approach
具体你可以用Qt Creator或 Qt Assistant 查看Qt自带手册
http://qt-project.org/doc/qt-5/designer-using-a-ui-file.html (2014-04-02 10:46) 


有效,太感谢了,给力
离线cyberpunker

只看该作者 7楼 发表于: 2014-04-16
优秀文章,支持!n神马都是浮云
离线ashe0817

只看该作者 8楼 发表于: 2014-04-30
学习一下,理解界面与逻辑的分离!
快速回复
限100 字节
 
上一个 下一个