• 18918阅读
  • 15回复

关于隐藏最大化最小化按钮问题!急急急啊~~~ [复制链接]

上一主题 下一主题
离线lugaideath
 

只看楼主 倒序阅读 楼主  发表于: 2008-06-23
— 本帖被 XChinux 执行加亮操作(2008-06-23) —
我看过了以前的贴,但我用那些方法都不能!下面是我的代码:

#ifndef BASICWINDOW_H
#define BASICWINDOW_H
#include <QWidget>
class BasicWindow : public QWidget
{
    Q_OBJECT
public:
    BasicWindow();
};
#endif

#include <QtGui>

#include "BasicWindow.h"

BasicWindow::BasicWindow()
{
    setWindowTitle(QApplication::translate("MainWindow", "\345\255\220\347\252\227\345\217\243", 0, QApplication::UnicodeUTF8));
     setWindowFlags(Qt::Dialog);
     setWindowIcon(QIcon::QIcon("images/cut.png"));
}

setWindowFlags(Qt::Dialog);这一句不能把最大化和最小化按钮去掉或者失效,我这是一个子窗体来的,而我把这句话放到主窗体的代码上同样没有效果,主窗体是QMainWindow来的!

还有一个问题,我能吧图片去掉吗?上面我自己设置了图片,因为不想见那QT的图片,但如果我路径为空,就是没有图片,但它默认也是那QT图片哦,晕死啊!

急急急啊~~~
离线mofei252

只看该作者 1楼 发表于: 2008-06-23
如果你直接继承的QDialog 类,应该就没有最大化按钮了。
此外,如果你继承的QWidget,还有一个办法,就是设置最大size=最小size,这样也不会出现最大化按钮了
离线lugaideath

只看该作者 2楼 发表于: 2008-06-23
我试过继承QDialog 类了!但最大化按钮还是在的!
离线lugaideath

只看该作者 3楼 发表于: 2008-06-23
还有就是!我在QT designer里面设置它的最大size=最小size还不存在最大化和最小化按钮,不变化的只不过是窗体内的控件大小不变化,我拖动窗体边边还是可以改变窗体大小,固定不了!!setFixedSize()这个方法同样也是固定不了的!
离线XChinux

只看该作者 4楼 发表于: 2008-06-23
引用第2楼lugaideath于2008-06-23 17:56发表的  :
我试过继承QDialog 类了!但最大化按钮还是在的!


继承后用setWindowFlags()设置过?
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线lugaideath

只看该作者 5楼 发表于: 2008-06-24
引用第4楼XChinux于2008-06-23 18:02发表的  :
继承后用setWindowFlags()设置过?



刚试过了,那最大化最小化按钮还在,还有就是我的小窗体是QMdiArea里面的!
离线lugaideath

只看该作者 6楼 发表于: 2008-06-24
补充一下,这个子窗体是在主窗体的构造函数内被实例化的!就是说我主程序运行,这个子窗体就会出来的!
离线lugaideath

只看该作者 7楼 发表于: 2008-06-24
最大化最小化的问题我自己解决了,就是在addSubWindow()的时候添加Qt::Dialog这个参数就可以了,而固定窗体大小还不能实现,我设置了固定大小,但是固定下来的只是控件,并不是那子窗体,还可以通过拖动改变其大小!

我想QT里面,你自己创建了一个子窗体,而QMdiArea机制是,当调用addSubWindow()来添加子窗体的时候,自动会有一个容器来把你的子窗体装上去,我是这么想!
[ 此贴被lugaideath在2008-06-24 10:12重新编辑 ]
离线mofei252

只看该作者 8楼 发表于: 2008-06-24
你为什么不把你自己的类的size设置为固定大小,而要设置你的单独的控件的size呢?
离线duduqq

只看该作者 9楼 发表于: 2008-06-24
    setMaximumSize(x,y);
    setMinimumSize(x,y);
X,Y为相同的值,窗体就不固定了
离线lugaideath

只看该作者 10楼 发表于: 2008-06-24
回答上面两楼的:

BasicWindow *child = new BasicWindow();
child->setFixedSize(226,649);
child->show();
mdiArea->addSubWindow(child,Qt::Dialog);

我可没有说我是固定控件的SIZE哦,用我上面的方法固定不了,而吧setMaximumSize(x,y)和setMinimumSize(x,y)的值设置一样同样是不行的,你们可以自己打一个简单的例子试下看看!结果可以的话,希望可以把代码贴出来!谢谢!
离线duduqq

只看该作者 11楼 发表于: 2008-06-24
setMaximumSize(x,y)和setMinimumSize(x,y)我好几个程序都是用这个方法来固定窗体的大小的啊
离线lugaideath

只看该作者 12楼 发表于: 2008-06-24
引用第11楼duduqq于2008-06-24 12:30发表的  :
setMaximumSize(x,y)和setMinimumSize(x,y)我好几个程序都是用这个方法来固定窗体的大小的啊


你的窗体是放到QMdiArea里面的吗?如果是的话,可以固定大小的话,那么你可以些一个简单的例子贴出来吗?麻烦了!
离线lugaideath

只看该作者 13楼 发表于: 2008-06-25
没有人可以帮到我吗??顶上!
离线wanglei2258

只看该作者 14楼 发表于: 2009-08-07
不错初始化一个然后按照下面的设置就可以将窗体显示即没有最大最小按钮而且窗口也是固定的啦!!!
Widget w;
w.setWindowFlags(Qt::Dialog);
w.setMinimumSize(300,200);
w.setMaximumSize(300,200);
w.show();

代码可以在main.cpp函数中使用。其中Widget是我自己写的一个窗体类。
QT
离线cmostfl
只看该作者 15楼 发表于: 2011-12-06
QT4用下面方法试了是可以的
setWindowFlags(windowFlags() | Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::CustomizeWindowHint);
快速回复
限100 字节
 
上一个 下一个