2012-02-08 75 views
3

我负责一个拥有数十个窗口和数百种不同类型的小部件的大型(100 + KLOC)Qt应用程序。是否可以在不重写代码的情况下重新调整Qt GUI?

今天,用户问我是否有什么办法可以使一些应用程序的大窗户的适合他的13" 笔记本电脑的显示屏上更好。

当然也有办法让窗口更节省空间,重新组织GUI以允许更多的显示/隐藏各种东西,使用更小的字体等等......但我认为他真正想要的是一种简单地将整个窗口按一定百分比缩小的方式....一个类似于Apple的Expose的功能,或者一些VNC客户端的功能。

所以我的问题是...有没有什么办法可以告诉Qt按x%缩小整个窗口,不是涉及修改/重新设计大部分代码库?我知道QPainter有一个setScale()方法,而QGraphicsView允许很好的全局缩放,但我的应用程序是QWidgets的层次结构,所以我需要一种扩展整个层次结构的方法,而不仅仅是在特定的QWidget中进行缩放帆布。

+0

我不知道这是否是一个选项,但他们可以在VirtualBox中运行您的应用程序,然后使用VirtualBox的缩放功能来使其达到所需的任何大小。 – 2012-02-08 07:30:37

回答

0

使用样式表可以修改小部件的边距和间距,可以将字体更改为较小。其他任何事情都可能需要您重新考虑UI设计。

0

我不知道你的主要程序和您正在使用的图形用户界面,但假设你使用基于QMainWindow中的GUI这会工作:

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    Window w; 
    w.show(); 

w.resize(new_width, new_height); 

return a.exec(); 
} 

与窗口:

namespace Ui { 
    class Window; 
} 

class Window : public QMainWindow 
{ 
    Q_OBJECT 

public: 
    explicit Window(QWidget *parent = 0); 
    ~Window(); 

private: 
    Ui::Window *ui; 
}; 

假设您使用的是QML,在显示qml文件的责任类中有相同的方法。

相关问题