Hy वहाँ,क्यूटी - (? धीमी रीपेंट) फ़्रेमरहित खिड़की चलती
मैं क्यूटी के लिए नया हूँ और मैं एक फ़्रेमरहित खिड़की है, जो dragable है बनाने की कोशिश की। समस्या यह है कि, अगर मैं खिड़की चलाता हूं .. हजारों (यह क्षमा करें, अंग्रेजी में इसका वर्णन कैसे करें) मुझे तब तक नहीं रोकना चाहिए जब तक कि मैं रुक जाऊं। क्या इसे ठीक करने का कोई तरीका है, या क्या मैं गलत तरीके से सोच रहा हूं?
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();
}
नमस्ते, एलेक्स
मैंने Winwods Vista पर Qt 4.5.1 के साथ अपने नमूना कोड की कोशिश की और यह ठीक काम करता है, क्या आप गलत तरीके से वर्णन कर सकते हैं कि क्या गलत है (हजारों क्या?)। – gregseth
मुझे लगता है कि "इसके हजारों" विंडो खंडों के एक बड़े हिस्से को संदर्भित करते हैं, यदि खिड़की के स्थानांतरित होने पर विंडो प्रबंधक ठीक से रीफ्रेश नहीं कर रहा है तो खिड़की प्रबंधक पीछे छोड़ सकता है। मेरे लिए, यह विंडो प्रबंधक के साथ एक समस्या की तरह लगता है, या संभवतः एक एम्बेडेड डिवाइस पर जो उच्च CPU लोड पर चल रहा है। –
यह वही है जो मेरा मतलब है। लेकिन यह तभी होता है जब मैं फ़ायरफ़ॉक्स जैसे एनोटर एप्लिकेशन पर बेकार खिड़की को ड्रैग कर रहा हूं। डेस्कटॉप पर यह एक सामान्य व्यवहार है। सीपीयू-लोड सामान्य है, जीपीयू <5% – Alex