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()
}
預覽
相關文章
- Qt5:視窗居中顯示QT
- Windows API視窗程式設計 - 空白視窗WindowsAPI程式設計
- 討論關閉子視窗,重新整理父視窗(非模式視窗)模式
- js關閉視窗JS
- Qt視窗居中QT
- js如何在子視窗中關閉父視窗JS
- 視窗事件事件
- js漸變彈出視窗和關閉視窗效果JS
- CSS視窗垂直水平居中CSS
- qt 視窗預設居中QT
- qt視窗居中顯示QT
- C語言建立空白Windows視窗程式碼C語言Windows
- 關閉瀏覽器視窗彈出警告視窗程式碼例項瀏覽器
- PyQt5 之關閉視窗QT
- 警惕遊戲融資視窗正在關閉遊戲
- javascript如何關閉當前視窗JavaScript
- Javascript自動關閉視窗(轉)JavaScript
- <轉>“您檢視的網頁正在試圖關閉視窗。是否關閉此視窗”的遮蔽方法(JavaScript)網頁JavaScript
- C# winForm 視窗跳轉後關閉上一個視窗的方法C#ORM
- PyQt5 之視窗居中QT
- JavaScript視窗功能指南之建立彈出視窗 (轉)JavaScript
- pyqt5建立主視窗(介紹視窗型別)QT型別
- 用Go語言建立Windows視窗程式GoWindows
- C#中關閉子視窗而不釋放子視窗物件的方法C#物件
- JavaScript - 模式視窗和非模式視窗JavaScript模式
- 關閉網頁彈出提示視窗網頁
- Android的左滑關閉視窗Android
- js微信視窗關閉事件簡單程式碼例項JS事件
- Qt 設定視窗居中顯示QT
- Qt視窗螢幕居中顯示QT
- Qt的視窗背景及視窗風格統一與煥膚QT
- 0x02. 處理視窗關閉
- 在VB中使用API關閉視窗 (轉)API
- PyQT5之訊號關閉視窗QT
- jQuery在子視窗如何操作父視窗元素jQuery
- JS彈出視窗視窗的位置和大小JS
- Qt中設定視窗居中顯示QT
- QT 讓視窗(或控制元件)居中QT控制元件