Quantcast
Channel: Jobs
Viewing all articles
Browse latest Browse all 18427

Custom QMainWindow

$
0
0
Hi guys, i’m trying to make a custom window, i can do this using this code, but i can’t resize because of the fixed size, and i can’t move only in the Titlebar (custom title bar), in any place i can move, how move only in the titlebar?. MyWindow.h #include <QMainWindow> #include <QLabel> #include <QPushButton> #include <QMouseEvent>   class MyWindow : public QMainWindow {     Q_OBJECT private:     QLabel *label_title,*label_quit;     QPushButton *bn_exit;     QPixmap *pixmap;     QPoint m_dragPosition;   public:     MyWindow(QMainWindow *parent = 0, Qt::WindowFlags flags = 0); protected:     void paintEvent(QPaintEvent *event);     void mouseMoveEvent(QMouseEvent *event);     void mousePressEvent(QMouseEvent *event); }; MyWindow.cpp #include "MyWindow.h" #include <QApplication> #include <QPainter> #include <QLabel>   MyWindow::MyWindow(QMainWindow *parent, Qt::WindowFlags flags) : QMainWindow(parent,flags) {       resize(1024,576);     setWindowTitle("Versuch1");       //Titel     label_title = new QLabel("irgendwas",this);     label_title->setGeometry(10,10,500,40);     label_title->setStyleSheet("font-family: Arial; letter-spacing: 4px;font-weight:bold; color : white;font-size: 30px");       //Exit-Button     bn_exit = new QPushButton("[Exit]",this);     bn_exit->setGeometry(975,10,40,20);     bn_exit->setStyleSheet("QPushButton {font-family: Verdana; font-size:15px; top:0px; border: none; background-color:#101010; color:white} QPushButton:hover {color: red }");     connect(bn_exit,SIGNAL(clicked()),qApp,SLOT(quit())); }     void MyWindow::paintEvent(QPaintEvent *event) // Painter {   QPainter painter(this);   painter.setPen(Qt::NoPen); // deactivate Border     painter.setBrush(QBrush("#101010")); // black title and footer   painter.drawRect(0, 0, 1024, 60);     painter.setBrush(QBrush("#101010"));   painter.drawRect(0, 516, 1024, 576); } void MyWindow::mouseMoveEvent(QMouseEvent *event) {     if (event->buttons() & Qt::LeftButton) {         move(event->globalPos() - m_dragPosition);         event->accept();     } } void MyWindow::mousePressEvent(QMouseEvent *event) {     if (event->button() == Qt::LeftButton) {         m_dragPosition = event->globalPos() - frameGeometry().topLeft();         event->accept();     } } main.cpp #include <QApplication> #include "MyWindow.h"   int main(int argc, char *argv[]) {     QApplication app(argc, argv);     MyWindow* window =  new MyWindow(0, Qt::FramelessWindowHint);     window->show();     return app.exec(); }

Viewing all articles
Browse latest Browse all 18427

Trending Articles