giải pháp đầu tiên
Bạn có thể thêm lá cờ sau đây để những lá cờ của cửa sổ của bạn để ngăn chặn các cửa sổ không bị thay đổi kích cỡ bởi người sử dụng:
setWindowFlags(this->windowFlags() |= Qt::FramelessWindowHint);
Dưới đây là một số chi tiết thông tin về Window Flags.
Thứ hai giải pháp (xấu xí) thí nghiệm
Đây là loại một bẩn công việc xung quanh ... Tôi hoàn toàn nhận thức được thực tế, rằng đây là không sạch sẽ.
Tôi vừa viết cửa sổ chính nhỏ này thay đổi con trỏ theo cách thủ công khi khu vực cửa sổ chính còn lại.
Lưu ý: Bạn phải xem xét các tác dụng phụ. Có thể có một hình dạng con trỏ khác cần thiết cho tiện ích con, nhưng điều này sẽ ghi đè con trỏ cho ứng dụng hoàn chỉnh.
Điều này có thể được sử dụng làm điểm khởi đầu để phát triển hơn nữa và cho các ứng dụng đơn giản.
Tiêu đề:
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);
}
Câu hỏi thú vị. Tôi thậm chí không chắc chắn điều này là có thể. Đây không phải là chức năng của trình quản lý cửa sổ?Nó ** có thể ** là Qt không có quyền kiểm soát con trỏ này. Có lẽ bạn nên thêm nhiều thẻ hơn cho câu hỏi của mình. 'windowmanager'? Hệ điều hành nào? Bạn sử dụng trình quản lý cửa sổ nào? Có thể cần một loại chuyên môn khác để giải quyết vấn đề của bạn, bạn nghĩ vậy. – Greenflow
Không chắc chắn - không đặt cờ cửa sổ thành 'Qt :: Dialog | QT :: Window' làm gì? –
Đây có phải là mainwindow của bạn không? Bạn đang sử dụng phiên bản Qt nào? – thuga