Qt удалить строку заголовка
У меня есть MediaPanel, который наследуется от QWidget, и я хочу скрыть строку заголовка, но событие, если я устанавливаю флаги с setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint);
(или некоторыми другими флагами), результат остается тем же: ![mediaPanel]()
и если я использую setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
, я теряю все кнопки, метки и слайдеры: ![empty media panel]()
Я играл с примером Qt, и некоторая комбинация кажется невозможной...
EDIT:
Я опубликовал сокращенную часть моего кода, может ли кто-нибудь сказать мне, где я должен установить флаги?
main.cpp:
#include <QApplication>
#include "JokerWindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
JokerWindow w(&settings);
w.show();
return a.exec();
}
JokerWindow.h
#ifndef JOKERWINDOW_H
#define JOKERWINDOW_H
#include <QMainWindow>
#include "PhCommonUI/PhMediaPanelDialog.h"
namespace Ui {
class JokerWindow;
}
class JokerWindow : public QMainWindow
{
Q_OBJECT
public:
explicit JokerWindow(QSettings *settings);
~JokerWindow();
private:
PhMediaPanelDialog _mediaPanel;
};
#endif // MAINWINDOW_H
JokerWindow.cpp
#include "JokerWindow.h"
#include "ui_JokerWindow.h"
JokerWindow::JokerWindow(QSettings *settings) :
QMainWindow(NULL),
ui(new Ui::JokerWindow)
{
_mediaPanel.show();
}
JokerWindow::~JokerWindow()
{
delete ui;
}
PhMediaPanel.h
#ifndef PHMEDIAPANEL_H
#define PHMEDIAPANEL_H
#include <QWidget>
namespace Ui {
class PhMediaPanel;
}
class PhMediaPanel : public QWidget
{
Q_OBJECT
public:
explicit PhMediaPanel(QWidget *parent = 0);
~PhMediaPanel();
private:
Ui::PhMediaPanel *ui;
};
#endif // PHMEDIAPANEL_H
PhMediaPanel.cpp
#include "PhMediaPanel.h"
#include "ui_PhMediaPanel.h"
PhMediaPanel::PhMediaPanel(QWidget *parent) :
QWidget(parent)
{
ui->setupUi(this);
}
PhMediaPanel::~PhMediaPanel()
{
delete ui;
}
Ответы
Ответ 1
setWindowFlags (Qt:: Window | Qt:: FramelessWindowHint) работает для меня. Убедитесь, что вы применяете настройку в окне самого высокого уровня. например, на main.cpp См. изображение ниже, пропустите проводную 3D-вещь, проверив некоторый код OpenGL. ![enter image description here]()
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
WoodPuppet window;
window.setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
window.show();
}