Prima soluzione
È possibile aggiungere il seguente bandiera alle bandiere della finestra per evitare che la finestra venga ridimensionata da parte dell'utente:
setWindowFlags(this->windowFlags() |= Qt::FramelessWindowHint);
Ecco qualche informazione in più Window Flags.
Seconda soluzione (brutto) esperimento
Questa è una specie di sporco lavoro-around ... Sono pienamente consapevole del fatto che questo non è pulito.
Ho appena scritto questa piccola finestra principale che cambia il cursore manualmente quando l'area della finestra principale viene lasciata.
Nota: è necessario considerare gli effetti indesiderati. Forse c'è un'altra forma del cursore necessaria per un widget figlio, ma questo sovrascrive il cursore per l'applicazione completa.
Questo può essere utilizzato come punto di partenza per ulteriori sviluppi e per applicazioni semplici.
Intestazione:
class CMainWindow :
public QMainWindow
{
public:
CMainWindow(QWidget* parent = nullptr);
virtual ~CMainWindow(void);
protected:
virtual void leaveEvent(QEvent *event);
virtual void enterEvent(QEvent *event);
};
cpp:
CMainWindow::CMainWindow(QWidget* parent) : QMainWindow(parent)
{
setMouseTracking(true);
}
CMainWindow::~CMainWindow(void)
{
}
void CMainWindow::leaveEvent(QEvent *event)
{
qApp->setOverrideCursor(QCursor(Qt::ArrowCursor));
QMainWindow::leaveEvent(event);
}
void CMainWindow::enterEvent(QEvent *event)
{
qApp->restoreOverrideCursor();
QMainWindow::enterEvent(event);
}
Interessante domanda. Non sono nemmeno sicuro che sia possibile. Non è una funzione del window manager?** Potrebbe ** essere che Qt non ha il controllo su questo cursore. Forse dovresti aggiungere più tag alla tua domanda. 'Windowmanager'? Quale sistema operativo? Quale gestore di finestre usi? Potrebbe avere bisogno di un altro tipo di esperienza per risolvere il tuo problema, allora pensi. – Greenflow
Non sicuro - imposta il flag della finestra su 'Qt :: Dialog | QT :: Window' fa qualcosa? –
È per la tua finestra principale? Quale versione di Qt stai usando? – thuga