Приставката за платформата Qt е внедрена с оглед на възможностите и ограниченията на платформата. Изглежда, че QNX поддържа само превключване на прозорци, без пълноценно управление на прозорци, както бихте имали в windows или linux, следователно Qt приложенията са имплицитно и вероятно присъщо цял екран.
Ако желаете да не е на целия екран, просто внедрете празен основен прозорец и позиционирайте централния уиджет, като го оставите свободно плаващ, вместо да бъде поставен в оформление в главния прозорец.
Но това не означава, че ще можете да поставите повече приложения на екрана, а само няма да използвате целия екран за прозореца на едно приложение, което показва. Бихте могли да фалшифицирате множество приложения, като просто използвате множество джаджи и внедрите свой собствен фалшив мениджър на прозорци, предупреждението е, че все още ще използвате един процес, което може или не може да се окаже проблем.
Ето какво имам предвид под „свободно плаваща джаджа“:
class YourWidget : public QWidget {
Q_OBJECT
public:
YourWidget(QWidget * p) : QWidget(p) { resize(100, 100); }
void paintEvent(QPaintEvent *) {
QPainter p(this);
p.fillRect(rect(), Qt::black);
}
};
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = 0) : QMainWindow(parent) {
resize(500, 500);
QWidget * blank = new QWidget;
setCentralWidget(blank);
widget = new YourWidget(blank);
widget->move(rect().center());
}
void mousePressEvent(QMouseEvent * e) {
widget->move(e->pos());
}
private:
YourWidget * widget;
};
YourWidget
вече не е закотвен от оформление, той е свободен да се премества в произволна позиция, той все още е нарисуван в границите на неговия уиджет контейнер, който е просто празен уиджет, зададен като централен уиджет на прозореца и животът също се управлява автоматично.
person
dtech
schedule
11.10.2015