Go Qt5 建立空白視窗、視窗居中及關閉視窗事件
Go Qt5 建立空白視窗、視窗居中及關閉視窗事件
關閉視窗按鈕
func closeWindow(app *widgets.QMainWindow) {
// 建立按鈕
btn := widgets.NewQPushButton2("關閉視窗", app)
// 設定按鈕大小
btn.Resize(btn.SizeHint())
// 移動按鈕位置
btn.Move2(100, 100)
btn.SetToolTip("這是一個 <b>QPushButton</b> 控制元件")
// 按鈕點選事件
btn.ConnectClicked(func(bool) {
app.Close()
})
}
控制視窗顯示在螢幕中心的方法
// 控制視窗顯示在螢幕中心的方法
func center(app *widgets.QMainWindow) {
// 獲得視窗
qr := app.FrameGeometry()
// 獲得螢幕中心點
cp := widgets.NewQDesktopWidget().AvailableGeometry2(app).Center()
// 顯示到螢幕中心
qr.MoveCenter(cp)
app.Move(qr.TopLeft())
}
關閉視窗前處理事件
func CloseWindowEvent(event *gui.QCloseEvent){
reply := widgets.QMessageBox_Question(nil, "提示訊息", "確定關閉視窗嗎?", widgets.QMessageBox__Yes|widgets.QMessageBox__No, widgets.QMessageBox__Yes)
if reply == widgets.QMessageBox__Yes {
event.Accept()
} else {
event.Ignore()
}
}
完整程式碼
/*-------------------------------------------------------------------
| Project : goland
| Author : 今夕何夕
| QQ/Email : 184566608<qingyueheji@qq.com>
| Time : 2020-10-07 14:17
| Describe : main
+------------------------------------------------------------------*/
package main
import (
"github.com/therecipe/qt/gui"
"github.com/therecipe/qt/widgets"
"os"
)
// 關閉視窗
func closeWindow(app *widgets.QMainWindow) {
// 建立按鈕
btn := widgets.NewQPushButton2("關閉視窗", app)
// 設定按鈕大小
btn.Resize(btn.SizeHint())
// 移動按鈕位置
btn.Move2(100, 100)
btn.SetToolTip("This is a <b>QPushButton</b> widget")
// 按鈕點選事件
btn.ConnectClicked(func(bool) {
app.Close()
})
}
// 控制視窗顯示在螢幕中心的方法
func center(app *widgets.QMainWindow) {
// 獲得視窗
qr := app.FrameGeometry()
// 獲得螢幕中心點
cp := widgets.NewQDesktopWidget().AvailableGeometry2(app).Center()
// 顯示到螢幕中心
qr.MoveCenter(cp)
app.Move(qr.TopLeft())
}
// 關閉視窗前處理事件
func CloseWindowEvent(event *gui.QCloseEvent){
reply := widgets.QMessageBox_Question(nil, "提示訊息", "確定關閉視窗嗎?", widgets.QMessageBox__Yes|widgets.QMessageBox__No, widgets.QMessageBox__Yes)
if reply == widgets.QMessageBox__Yes {
event.Accept()
} else {
event.Ignore()
}
}
// 初始化視窗
func InitUi() *widgets.QMainWindow {
// 建立視窗
app := widgets.NewQMainWindow(nil, 0)
// 設定視窗的標題
app.SetWindowTitle("Qt 教程")
// 設定視窗的位置和大小
app.SetGeometry2(300, 300, 300, 220)
// 設定視窗的圖示,引用當前目錄下的web.png圖片
app.SetWindowIcon(gui.NewQIcon5("images/app.ico"))
// 關閉視窗
closeWindow(app)
// 更改視窗關閉預設事件
app.ConnectCloseEvent(CloseWindowEvent)
return app
}
func main() {
// 建立一個應用程式物件
// sys.argv引數是一個列表,從命令列輸入引數
widgets.NewQApplication(len(os.Args), os.Args)
// 初始化視窗
app := InitUi()
// 視窗居中
center(app)
// 顯示元件
app.Show()
// 確保應用程式乾淨的退出
widgets.QApplication_Exec()
}
預覽
相關文章
- Windows API視窗程式設計 - 空白視窗WindowsAPI程式設計
- 視窗事件事件
- CSS視窗垂直水平居中CSS
- C語言建立空白Windows視窗程式碼C語言Windows
- PyQt5 之關閉視窗QT
- PyQt5 之視窗居中QT
- C# winForm 視窗跳轉後關閉上一個視窗的方法C#ORM
- pyqt5建立主視窗(介紹視窗型別)QT型別
- 視窗
- C#中關閉子視窗而不釋放子視窗物件的方法C#物件
- Qt 設定視窗居中顯示QT
- Flink的滾動視窗、會話視窗、滑動視窗及其應用會話
- 拆分視窗
- 聊天視窗
- 0x02. 處理視窗關閉
- PyQT5之訊號關閉視窗QT
- 警惕遊戲融資視窗正在關閉遊戲
- mysql視窗函式中的滑動視窗MySql函式
- 建立多視窗的Windowsform程式WindowsORM
- 關於父視窗獲取跨域iframe子視窗中的元素跨域
- WPF通過附加屬性控制視窗關閉
- 帶有半透明遮罩層可關閉視窗遮罩
- 如何禁用控制檯視窗的關閉按鈕?
- Qt 讓彈出的視窗居中顯示QT
- Qt5.12視窗螢幕居中顯示QT
- 彈出視窗
- 視窗程式框架框架
- QT視窗類QT
- 廣告彈窗/小視窗程式碼
- 視窗介面設計規範:介面關閉方式及介面疊加
- JavaScript 點選頁面其他地方關閉視窗JavaScript
- [Go語言寫介面]二、簡單美化視窗,設定視窗圖示,簡單美化資訊框,建立按鈕和註冊事件Go事件
- win10快捷鍵關閉當前視窗怎麼操作_win10快捷鍵快速關掉所有視窗方法Win10
- 喬哈里視窗
- 彈出視窗messagebox
- 視窗程式的框架框架
- Mysql視窗函式MySql函式
- Hive視窗函式Hive函式