qt ve C++ konusunda oldukça yeniyim ve anlayamadığım bir sorunla karşılaştım. Ana kullanıcı arayüzünde bir düğmeyi tıkladığımda çerçevesiz ve şeffaf bir pencere açmak istiyorum. Ana kullanıcı arabiriminde bir düğmeye bastığımda yeni bir pencere açmak için çalışan kod var ama çerçevesiz ve saydam parçaların çalışmasını sağlayamıyorum. İşte Çerçevesiz ve şeffaf pencere qt5
İşte Burada LearnWindow.h#ifndef LEARNWINDOW_H
#define LEARNWINDOW_H
#include <QMainWindow>
#include <transwindow.h>
namespace Ui {
class LearnWindow;
}
class LearnWindow : public QMainWindow
{
Q_OBJECT
public:
explicit LearnWindow(QWidget *parent = 0);
~LearnWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::LearnWindow *ui;
TransWindow *winTrans;
public slots:
void openTrans();
};
#endif // LEARNWINDOW_H
olan learnwindow olan bu
main.cpp
#include "learnwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
LearnWindow w;
w.show();
return a.exec();
}
öğrenmek yazdığı küçük program için kaynak kodları olduğunu. cpp
#include "learnwindow.h"
#include "ui_learnwindow.h"
LearnWindow::LearnWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::LearnWindow)
{
ui->setupUi(this);
}
LearnWindow::~LearnWindow()
{
delete ui;
}
void LearnWindow::openTrans()
{
winTrans = new TransWindow (this);
//winTrans->setWindowTitle("NewWin");
// winTrans->setWindowFlags(Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint);
//winTrans->setAttribute(Qt::WA_TranslucentBackground,true);
//winTrans->setAutoFillBackground(false);
//winTrans->setStyleSheet("background:transparent;");
winTrans->show();
}
void LearnWindow::on_pushButton_clicked()
{
openTrans();
}
İşte transwindow.h
#ifndef TRANSWINDOW_H
#define TRANSWINDOW_H
#include <QDialog>
namespace Ui {
class TransWindow;
}
class TransWindow : public QDialog
{
Q_OBJECT
public:
explicit TransWindow(QWidget *parent = 0);
//setWindowFlags(windowFlags()| Qt::FramelessWindowHint);
~TransWindow();
private:
Ui::TransWindow *ui;
};
#endif // TRANSWINDOW_H
olduğunu Ve burada denedim farklı şeyler olduğunu hatlarını yorumladı görürsünüz farklı kaynak kodları ise transwindow.cpp
#include "transwindow.h"
#include "ui_transwindow.h"
TransWindow::TransWindow(QWidget *parent) :
QDialog(parent),
ui(new Ui::TransWindow)
{
//setWindowTitle("NewWin");
//setWindowFlags(Qt::FramelessWindowHint);
//setAttribute(Qt::WA_TranslucentBackground,true);
ui->setupUi(this);
}
TransWindow::~TransWindow()
{
delete ui;
}
olduğunu. Çoğunlukla sorun şu ki, "Qt :: FramlessWindowHint" ayarlamayı deneyen satırlardan herhangi birini yorumlamıyorsam, program normal olarak çalışıyor ancak ana kullanıcı arabirimindeki düğmeyi tıklattığımda hiçbir zaman yeni bir pencere açmıyor.
"Qt :: WA_TranslucentBackground" ayarını yaptığım satırlardan hiçbirini açıklama yapmazsam, ana pencerede düğmeye basıldığında yeni pencere açılacak, ancak yeni pencerenin arka planı siyah, şeffaf değil.
ilgili olabilirDiğer bilgi: linux: Daha önce belirtildiği gibi ubunto 12.04 qt 5.0.2 (64-bit) qt yaratıcısı 2.7.1
Ben bu ve don oldukça yeniyim Bu işi düzgün yapmak için ne eksik olduğumu tam olarak anlayamıyorum. Herkesin sağlayabileceği herhangi bir yardım büyük takdir edilecektir.
Ben, bana doğru prosedürü bildirdiğiniz için teşekkür dileriz. – Caveman
Sorun değil, yardımcı olabileceğime sevindim! Bu kaliteye dair sorularınız varsa, temsilcinizi alacaksınız. hiç vakit kaybetmeden, endişelenmeyin :-) Bu sitelerin [yardım] bölümünde veya [FAQ] 'da nasıl çalıştığıyla ilgili bir çok şey var (http://meta.stackexchange.com/questions/ Bilgi arıyorsanız, [meta] için 7931/faq-yığın-exchange-site) sayfası. – Mat