本文整理汇总了Golang中github.com/gotk3/gotk3/gtk.MainQuit函数的典型用法代码示例。如果您正苦于以下问题:Golang MainQuit函数的具体用法?Golang MainQuit怎么用?Golang MainQuit使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了MainQuit函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestWebView_URI
func TestWebView_URI(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/", func(w http.ResponseWriter, _ *http.Request) {})
wantURI := server.URL + "/"
var gotURI string
webView.Connect("notify::uri", func() {
glib.IdleAdd(func() bool {
gotURI = webView.URI()
if gotURI != "" {
gtk.MainQuit()
}
return false
})
})
glib.IdleAdd(func() bool {
webView.LoadURI(server.URL)
return false
})
gtk.Main()
if wantURI != gotURI {
t.Errorf("want URI %q, got %q", wantURI, gotURI)
}
}
开发者ID:elvuel,项目名称:go-webkit2,代码行数:29,代码来源:webview_test.go
示例2: TestWebView_RunJavaScript
func TestWebView_RunJavaScript(t *testing.T) {
webView := NewWebView()
defer webView.Destroy()
wantResultString := "abc"
webView.Connect("load-changed", func(_ *glib.Object, loadEvent LoadEvent) {
switch loadEvent {
case LoadFinished:
webView.RunJavaScript(`document.getElementById("foo").innerHTML`, func(result *gojs.Value, err error) {
if err != nil {
t.Errorf("RunJavaScript error: %s", err)
}
resultString := webView.JavaScriptGlobalContext().ToStringOrDie(result)
if wantResultString != resultString {
t.Errorf("want result string %q, got %q", wantResultString, resultString)
}
gtk.MainQuit()
})
}
})
glib.IdleAdd(func() bool {
webView.LoadHTML(`<p id=foo>abc</p>`, "")
return false
})
gtk.Main()
}
开发者ID:elvuel,项目名称:go-webkit2,代码行数:28,代码来源:webview_test.go
示例3: TestWebView_LoadHTML
func TestWebView_LoadHTML(t *testing.T) {
webView := NewWebView()
defer webView.Destroy()
loadOk := false
webView.Connect("load-failed", func() {
t.Errorf("load failed")
})
webView.Connect("load-changed", func(_ *glib.Object, loadEvent LoadEvent) {
switch loadEvent {
case LoadFinished:
loadOk = true
gtk.MainQuit()
}
})
glib.IdleAdd(func() bool {
webView.LoadHTML("<p>hello</p>", "")
return false
})
gtk.Main()
if !loadOk {
t.Error("!loadOk")
}
}
开发者ID:elvuel,项目名称:go-webkit2,代码行数:27,代码来源:webview_test.go
示例4: TestWebView_Title
func TestWebView_Title(t *testing.T) {
webView := NewWebView()
defer webView.Destroy()
wantTitle := "foo"
var gotTitle string
webView.Connect("notify::title", func() {
glib.IdleAdd(func() bool {
gotTitle = webView.Title()
if gotTitle != "" {
gtk.MainQuit()
}
return false
})
})
glib.IdleAdd(func() bool {
webView.LoadHTML("<html><head><title>"+wantTitle+"</title></head><body></body></html>", "")
return false
})
gtk.Main()
if wantTitle != gotTitle {
t.Errorf("want title %q, got %q", wantTitle, gotTitle)
}
}
开发者ID:elvuel,项目名称:go-webkit2,代码行数:27,代码来源:webview_test.go
示例5: TestWebView_RunJavaScript_exception
func TestWebView_RunJavaScript_exception(t *testing.T) {
webView := NewWebView()
defer webView.Destroy()
wantErr := errors.New("An exception was raised in JavaScript")
webView.Connect("load-changed", func(_ *glib.Object, loadEvent LoadEvent) {
switch loadEvent {
case LoadFinished:
webView.RunJavaScript(`throw new Error("foo")`, func(result *gojs.Value, err error) {
if result != nil {
ctx := webView.JavaScriptGlobalContext()
t.Errorf("want result == nil, got %q", ctx.ToStringOrDie(result))
}
if !reflect.DeepEqual(wantErr, err) {
t.Errorf("want error %q, got %q", wantErr, err)
}
gtk.MainQuit()
})
}
})
glib.IdleAdd(func() bool {
webView.LoadHTML(`<p></p>`, "")
return false
})
gtk.Main()
}
开发者ID:elvuel,项目名称:go-webkit2,代码行数:28,代码来源:webview_test.go
示例6: TestWebView_GetSnapshot
func TestWebView_GetSnapshot(t *testing.T) {
webView := NewWebView()
defer webView.Destroy()
webView.Connect("load-changed", func(_ *glib.Object, loadEvent LoadEvent) {
switch loadEvent {
case LoadFinished:
webView.GetSnapshot(func(img *image.RGBA, err error) {
if err != nil {
t.Errorf("GetSnapshot error: %q", err)
}
if img.Pix == nil {
t.Error("!img.Pix")
}
if img.Stride == 0 || img.Rect.Max.X == 0 || img.Rect.Max.Y == 0 {
t.Error("!img.Stride or !img.Rect.Max.X or !img.Rect.Max.Y")
}
gtk.MainQuit()
})
}
})
glib.IdleAdd(func() bool {
webView.LoadHTML(`<p id=foo>abc</p>`, "")
return false
})
gtk.Main()
}
开发者ID:elvuel,项目名称:go-webkit2,代码行数:29,代码来源:webview_test.go
示例7: TestWebView_LoadURI_load_failed
func TestWebView_LoadURI_load_failed(t *testing.T) {
webView := NewWebView()
defer webView.Destroy()
loadFailed := false
loadFinished := false
webView.Connect("load-failed", func() {
loadFailed = true
})
webView.Connect("load-changed", func(_ *glib.Object, loadEvent LoadEvent) {
switch loadEvent {
case LoadFinished:
loadFinished = true
gtk.MainQuit()
}
})
glib.IdleAdd(func() bool {
// Load a bad URL to trigger load failure.
webView.LoadURI("http://127.0.0.1:99999")
return false
})
gtk.Main()
if !loadFailed {
t.Error("!loadFailed")
}
if !loadFinished {
t.Error("!loadFinished")
}
}
开发者ID:elvuel,项目名称:go-webkit2,代码行数:32,代码来源:webview_test.go
示例8: main
func main() {
// Initialize GTK without parsing any command line arguments.
gtk.Init(nil)
// Create a new toplevel window, set its title, and connect it to the
// "destroy" signal to exit the GTK main loop when it is destroyed.
win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
if err != nil {
log.Fatal("Unable to create window:", err)
}
win.SetTitle("Simple Example")
win.Connect("destroy", func() {
gtk.MainQuit()
})
// Create a new label widget to show in the window.
list, err := gtk.ListBoxNew()
if err != nil {
log.Fatal("Unable to create label:", err)
}
gtkList = list
// Add the label to the window.
win.Add(gtkList)
// Set the default window size.
win.SetDefaultSize(640/2, 1136/2)
// Recursively show all widgets contained in this window.
win.ShowAll()
// Begin executing the GTK main loop. This blocks until
// gtk.MainQuit() is run.
go getEntries()
gtk.Main()
}
开发者ID:MobiusHorizons,项目名称:GoStudentNews,代码行数:35,代码来源:main.go
示例9: backgroundOrchestrator
func backgroundOrchestrator(launcher launchers.Launcher, bootDescriptorPath string, guiOutcomeChannel chan guiOutcomeStruct) {
outcome := runEngineWithGtk(launcher, bootDescriptorPath)
userInterface := outcome.userInterface
err := outcome.err
log.SetCallback(func(level logging.Level, message string) {})
log.Debug("Result returned by the background routine. Is UI available? %v", userInterface != nil)
if err != nil {
log.Warning("Err is: %v", err)
if userInterface != nil {
switch err.(type) {
case *engine.ExecutionCanceled:
break
default:
userInterface.ShowError(err.Error())
}
}
}
log.Debug("Now programmatically quitting GTK")
gtk.MainQuit()
guiOutcomeChannel <- outcome
}
开发者ID:giancosta86,项目名称:moondeploy,代码行数:28,代码来源:startGtkGUI.go
示例10: main
func main() {
gtk.Init(nil)
go func() {
appdbus.StandAlone(TVPlay.NewApplet)
gtk.MainQuit()
}()
gtk.Main()
}
开发者ID:sqp,项目名称:godock,代码行数:8,代码来源:applet.go
示例11: TestTimeoutAdd
/*At this moment Visionect specific*/
func TestTimeoutAdd(t *testing.T) {
runtime.LockOSThread()
glib.TimeoutAdd(2500, func(s string) bool {
t.Log(s)
gtk.MainQuit()
return false
}, "TimeoutAdd executed")
gtk.Main()
}
开发者ID:yamnikov-oleg,项目名称:gotk3,代码行数:12,代码来源:glib_test.go
示例12: main
func main() {
gtk.Init(nil)
win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
panicIfNotNil(err)
win.Connect("destroy", func() {
gtk.MainQuit()
})
win.SetDefaultSize(1280, 720)
win.SetTitle("mauIRC Desktop")
// Create a new grid widget to arrange child widgets
grid, err := gtk.GridNew()
panicIfNotNil(err)
grid.SetOrientation(gtk.ORIENTATION_VERTICAL)
loginLabel, err := gtk.LabelNew("Log in to mauIRC")
panicIfNotNil(err)
email, err := gtk.EntryNew()
panicIfNotNil(err)
password, err := gtk.EntryNew()
panicIfNotNil(err)
password.SetVisibility(false)
btn, err := gtk.ButtonNewWithLabel("Log in")
panicIfNotNil(err)
grid.Attach(loginLabel, 0, 2, 1, 1)
grid.Attach(email, 0, 3, 1, 1)
grid.Attach(password, 0, 4, 1, 1)
grid.Attach(btn, 0, 5, 1, 1)
//grid.Attach(nb, 1, 1, 1, 2)
//nb.SetHExpand(true)
//nb.SetVExpand(true)
/*nbChild, err := gtk.LabelNew("Notebook content")
if err != nil {
log.Fatal("Unable to create button:", err)
}
nbTab, err := gtk.LabelNew("Tab label")
if err != nil {
log.Fatal("Unable to create label:", err)
}
nb.AppendPage(nbChild, nbTab)*/
win.Add(grid)
win.ShowAll()
gtk.Main()
}
开发者ID:tulir293,项目名称:mauirc-desktop,代码行数:53,代码来源:mauirc.go
示例13: setup_window
func setup_window(title string) *gtk.Window {
win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
if err != nil {
log.Fatal("Unable to create window:", err)
}
win.SetTitle(title)
win.Connect("destroy", func() {
gtk.MainQuit()
})
win.SetDefaultSize(800, 600)
win.SetPosition(gtk.WIN_POS_CENTER)
return win
}
开发者ID:gotk3,项目名称:gotk3-examples,代码行数:13,代码来源:stack.go
示例14: main
func main() {
gtk.Init(nil)
win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
if err != nil {
log.Fatal("Unable to create window:", err)
}
win.Connect("destroy", func() {
gtk.MainQuit()
})
win.Add(windowWidget())
// Native GTK is not thread safe, and thus, gotk3's GTK bindings may not
// be used from other goroutines. Instead, glib.IdleAdd() must be used
// to add a function to run in the GTK main loop when it is in an idle
// state.
//
// Two examples of using glib.IdleAdd() are shown below. The first runs
// a user created function, LabelSetTextIdle, and passes it two
// arguments for a label and the text to set it with. The second calls
// (*gtk.Label).SetText directly, passing in only the text as an
// argument.
//
// If the function passed to glib.IdleAdd() returns one argument, and
// that argument is a bool, this return value will be used in the same
// manner as a native g_idle_add() call. If this return value is false,
// the function will be removed from executing in the GTK main loop's
// idle state. If the return value is true, the function will continue
// to execute when the GTK main loop is in this state.
go func() {
for {
time.Sleep(time.Second)
s := fmt.Sprintf("Set a label %d time(s)!", nSets)
_, err := glib.IdleAdd(LabelSetTextIdle, topLabel, s)
if err != nil {
log.Fatal("IdleAdd() failed:", err)
}
nSets++
s = fmt.Sprintf("Set a label %d time(s)!", nSets)
_, err = glib.IdleAdd(bottomLabel.SetText, s)
if err != nil {
log.Fatal("IdleAdd() failed:", err)
}
nSets++
}
}()
win.ShowAll()
gtk.Main()
}
开发者ID:yamnikov-oleg,项目名称:gotk3-examples,代码行数:51,代码来源:goroutines.go
示例15: main
func main() {
gtk.Init(nil)
win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
if err != nil {
log.Fatal("Unable to create window:", err)
}
win.Connect("destroy", func() {
gtk.MainQuit()
})
win.Add(windowWidget())
win.ShowAll()
gtk.Main()
}
开发者ID:adrien3d,项目名称:gobox,代码行数:16,代码来源:signals.go
示例16: NewMainWindow
func NewMainWindow() *MainWindow {
self := new(MainWindow)
var err error
self.Window, err = gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
if err != nil {
log.Fatal("Failed to load GTK")
}
self.Board = board.NewBoard()
self.InitializeWidgets()
self.Window.Connect("destroy", func() {
gtk.MainQuit()
})
self.Window.SetDefaultSize(640, 560)
return self
}
开发者ID:juanfgs,项目名称:checkers,代码行数:20,代码来源:ui.go
示例17: Example
func Example() {
runtime.LockOSThread()
gtk.Init(nil)
webView := webkit2.NewWebView()
defer webView.Destroy()
webView.Connect("load-failed", func() {
fmt.Println("Load failed.")
})
webView.Connect("load-changed", func(_ *glib.Object, i int) {
loadEvent := webkit2.LoadEvent(i)
switch loadEvent {
case webkit2.LoadFinished:
fmt.Println("Load finished.")
fmt.Printf("Title: %q\n", webView.Title())
fmt.Printf("URI: %s\n", webView.URI())
webView.RunJavaScript("window.location.hostname", func(val *gojs.Value, err error) {
if err != nil {
fmt.Println("JavaScript error.")
} else {
fmt.Printf("Hostname (from JavaScript): %q\n", val)
}
gtk.MainQuit()
})
}
})
glib.IdleAdd(func() bool {
webView.LoadURI("https://www.google.com/")
return false
})
gtk.Main()
// output:
// Load finished.
// Title: "Google"
// URI: https://www.google.com/
// Hostname (from JavaScript): "www.google.com"
}
开发者ID:elvuel,项目名称:go-webkit2,代码行数:41,代码来源:example_test.go
示例18: TestConnectNotifySignal
// TestConnectNotifySignal ensures that property notification signals (those
// whose name begins with "notify::") are queried by the name "notify" (with the
// "::" and the property name omitted). This is because the signal is "notify"
// and the characters after the "::" are not recognized by the signal system.
//
// See
// https://developer.gnome.org/gobject/stable/gobject-The-Base-Object-Type.html#GObject-notify
// for background, and
// https://developer.gnome.org/gobject/stable/gobject-Signals.html#g-signal-new
// for the specification of valid signal names.
func TestConnectNotifySignal(t *testing.T) {
runtime.LockOSThread()
// Create any GObject that has defined properties.
spacing := 0
box, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, spacing)
// Connect to a "notify::" signal to listen on property changes.
box.Connect("notify::spacing", func() {
gtk.MainQuit()
})
glib.IdleAdd(func(s string) bool {
t.Log(s)
spacing++
box.SetSpacing(spacing)
return true
}, "IdleAdd executed")
gtk.Main()
}
开发者ID:yamnikov-oleg,项目名称:gotk3,代码行数:31,代码来源:glib_test.go
示例19: TestWebView_LoadURI
func TestWebView_LoadURI(t *testing.T) {
setup()
defer teardown()
responseOk := false
mux.HandleFunc("/", func(w http.ResponseWriter, _ *http.Request) {
w.Write([]byte("abc"))
responseOk = true
})
loadFinished := false
webView.Connect("load-failed", func() {
t.Errorf("load failed")
})
webView.Connect("load-changed", func(_ *glib.Object, loadEvent LoadEvent) {
switch loadEvent {
case LoadFinished:
loadFinished = true
gtk.MainQuit()
}
})
glib.IdleAdd(func() bool {
webView.LoadURI(server.URL)
return false
})
gtk.Main()
if !responseOk {
t.Error("!responseOk")
}
if !loadFinished {
t.Error("!loadFinished")
}
}
开发者ID:elvuel,项目名称:go-webkit2,代码行数:36,代码来源:webview_test.go
示例20: main
func main() {
gtk.Init(nil)
win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
if err != nil {
log.Fatal("Impossible de créer la fenêtre :", err)
}
win.SetTitle("GoBox a0.1")
win.Connect("destroy", func() {
gtk.MainQuit()
})
grid, err := gtk.GridNew()
if err != nil {
log.Fatal("Impossible de créer la grille :", err)
}
label1, err := gtk.LabelNew("Adresse IP / Port : ")
if err != nil {
log.Fatal("Impossible de créer le label IP :", err)
}
label3, err := gtk.LabelNew("Dossier à synchroniser : ")
if err != nil {
log.Fatal("Impossible de créer le label Dossier :", err)
}
entry1, err := gtk.EntryNew()
if err != nil {
log.Fatal("Impossible de créer le champ IP :", err)
}
entry2, err := gtk.EntryNew()
if err != nil {
log.Fatal("Impossible de créer le champ Port :", err)
}
entry3, err := gtk.EntryNew()
if err != nil {
log.Fatal("Impossible de créer le champ Dossier :", err)
}
btn, err := gtk.ButtonNewWithLabel("Lancer la synchronisation")
if err != nil {
log.Fatal("Impossible de créer le bouton synchronisation :", err)
}
/*btn2, err := gtk.FileChooserButtonNew("Choix")
if err != nil {
log.Fatal("Impossible de créer le bouton choix :", err)
}*/
grid.SetOrientation(gtk.ORIENTATION_HORIZONTAL)
//Attach(child IWidget, left, top, width, height int)
grid.Add(label1)
grid.SetOrientation(gtk.ORIENTATION_HORIZONTAL)
grid.Add(entry1)
grid.Add(entry2)
grid.SetOrientation(gtk.ORIENTATION_VERTICAL)
grid.Add(label3)
grid.Add(entry3)
grid.Attach(btn, 1, 2, 1, 2)
btn.Connect("clicked", func() {
/*dialog, _ := gtk.DialogNew()
filechooser, _ := gtk.FileChooserWidgetNew(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
dialog.AddButton("Valider", gtk.RESPONSE_ACCEPT)
dialog.AddButton("Annuler", gtk.RESPONSE_CANCEL)
dialog.SetTitle("Choisir le dossier a synchroniser")
box, _ := dialog.GetContentArea()
box.Add(filechooser)
box.ShowAll()
log.Print("Clic lancer synchro")*/
filechooserdialog, _ := gtk.FileChooserDialogNewWith1Button(
"Choisissez un fichier ...",
//btn.GetTopLevelAsWindow(),
win,
gtk.FILE_CHOOSER_ACTION_OPEN,
"Valider",
gtk.RESPONSE_ACCEPT)
/*filter := gtk.NewFileFilter()
filter.AddPattern("*.go")
filechooserdialog.AddFilter(filter)*/
filechooserdialog.Response(func() {
println(filechooserdialog.GetFilename())
filechooserdialog.Destroy()
})
filechooserdialog.Run()
})
/*
nbChildAll, err := gtk.LabelNew("Tous mes fichiers sont ici")
if err != nil {
log.Fatal("Unable to create button:", err)
}
nbTabAll, err := gtk.LabelNew("Tout")
if err != nil {
log.Fatal("Unable to create label:", err)
}
//.........这里部分代码省略.........
开发者ID:adrien3d,项目名称:gobox,代码行数:101,代码来源:gtk3.go
注:本文中的github.com/gotk3/gotk3/gtk.MainQuit函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论