本文整理汇总了Golang中github.com/mattn/go-gtk/gtk.NewMessageDialog函数的典型用法代码示例。如果您正苦于以下问题:Golang NewMessageDialog函数的具体用法?Golang NewMessageDialog怎么用?Golang NewMessageDialog使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewMessageDialog函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: main
func main() {
gtk.Init(nil)
window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL)
window.SetPosition(gtk.WIN_POS_CENTER)
window.SetTitle("Hello GTK+Go world!")
window.SetIconName("gtk-dialog-info")
window.Connect("destroy", func(ctx *glib.CallbackContext) {
gtk.MainQuit()
}, "foo")
vbox := gtk.NewVBox(false, 1)
button := gtk.NewButtonWithLabel("Hello world!")
button.SetTooltipMarkup("Say Hello World to everybody!")
button.Clicked(func() {
messagedialog := gtk.NewMessageDialog(
button.GetTopLevelAsWindow(),
gtk.DIALOG_MODAL,
gtk.MESSAGE_INFO,
gtk.BUTTONS_OK,
"Hello!")
messagedialog.Response(func() {
messagedialog.Destroy()
})
messagedialog.Run()
})
vbox.PackStart(button, false, false, 0)
window.Add(vbox)
window.SetSizeRequest(300, 50)
window.ShowAll()
gtk.Main()
}
开发者ID:olecya,项目名称:goeg,代码行数:30,代码来源:golang_hello.go
示例2: save
func (ed *BiomeInfoEditor) save() {
dlg := gtk.NewFileChooserDialog("Save", nil, gtk.FILE_CHOOSER_ACTION_SAVE, "OK", gtk.RESPONSE_OK, "Cancel", gtk.RESPONSE_CANCEL)
defer dlg.Destroy()
askFilename:
if dlg.Run() == gtk.RESPONSE_OK {
path := dlg.GetFilename()
if _, err := os.Stat(path); err == nil {
qdlg := gtk.NewMessageDialog(nil, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, "File %s already exists. Overwrite?", path)
resp := qdlg.Run()
qdlg.Destroy()
if resp != gtk.RESPONSE_YES {
goto askFilename
}
}
f, err := os.Create(path)
if err != nil {
errdlg("Could not save biome infos %s:\n%s", path, err.Error())
goto askFilename
}
defer f.Close()
if err := WriteBiomeInfos(ed.biolist.Biomes(), f); err != nil {
errdlg("Could not save biome infos %s:\n%s", path, err.Error())
goto askFilename
}
}
}
开发者ID:kch42,项目名称:biomed,代码行数:30,代码来源:biome_info_editor.go
示例3: SetMinutes
func (v *Status) SetMinutes(minutes int) {
var bg string
if minutes <= 5 {
bg = "yellow"
} else {
bg = "#e0e0e0"
}
v.timeLabel.SetMarkup("<span background='" + bg + "' size='xx-large'>" + strconv.Itoa(minutes) + " min igjen</span>")
if minutes <= 5 && v.warned == false {
msg := "Du blir logget av om " + strconv.Itoa(minutes) + " minutter. Husk å lagre det du jobber med!\nLagre på USB-pinne eller send det til deg selv på epost."
md := gtk.NewMessageDialog(v.window.GetTopLevelAsWindow(), gtk.DIALOG_MODAL,
gtk.MESSAGE_WARNING, gtk.BUTTONS_OK, msg)
md.SetTypeHint(gdk.WINDOW_TYPE_HINT_MENU)
md.SetPosition(gtk.WIN_POS_CENTER)
md.Connect("response", func() {
md.Destroy()
})
md.ShowAll()
v.warned = true
}
if minutes > 5 {
v.warned = false
}
}
开发者ID:digibib,项目名称:mycel-client,代码行数:26,代码来源:status.go
示例4: save
func (g *GUI) save() {
g.setBusy(true)
g.mapw.Save()
g.setBusy(false)
dlg := gtk.NewMessageDialog(g.window, gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, "Map saved!")
dlg.Run()
dlg.Destroy()
}
开发者ID:kch42,项目名称:biomed,代码行数:9,代码来源:main.go
示例5: bump_message
func bump_message(m string) {
dialog := gtk.NewMessageDialog(
main_window.GetTopLevelAsWindow(),
gtk.DIALOG_MODAL,
gtk.MESSAGE_INFO,
gtk.BUTTONS_OK,
m)
dialog.Run()
dialog.Destroy()
}
开发者ID:JessonChan,项目名称:tabby,代码行数:10,代码来源:main.go
示例6: bump_question
func bump_question(m string) (b bool) {
dialog := gtk.NewMessageDialog(
main_window.GetTopLevelAsWindow(),
gtk.DIALOG_MODAL,
gtk.MESSAGE_WARNING,
gtk.BUTTONS_YES_NO,
m)
b = dialog.Run() == gtk.RESPONSE_YES
dialog.Destroy()
return
}
开发者ID:udhos,项目名称:tabby,代码行数:11,代码来源:main.go
示例7: main
func main() {
gtk.Init(&os.Args)
window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL)
window.SetTitle("GTK DrawingArea")
window.Connect("destroy", gtk.MainQuit)
vbox := gtk.NewVBox(true, 0)
vbox.SetBorderWidth(5)
targets := []gtk.TargetEntry{
{"text/uri-list", 0, 0},
{"STRING", 0, 1},
{"text/plain", 0, 2},
}
dest := gtk.NewLabel("drop me file")
dest.DragDestSet(
gtk.DEST_DEFAULT_MOTION|
gtk.DEST_DEFAULT_HIGHLIGHT|
gtk.DEST_DEFAULT_DROP,
targets,
gdk.ACTION_COPY)
dest.DragDestAddUriTargets()
dest.Connect("drag-data-received", func(ctx *glib.CallbackContext) {
sdata := gtk.SelectionDataFromNative(unsafe.Pointer(ctx.Args(3)))
if sdata != nil {
a := (*[2000]uint8)(sdata.GetData())
files := strings.Split(string(a[0:sdata.GetLength()-1]), "\n")
for i := range files {
filename, _, _ := glib.FilenameFromUri(files[i])
files[i] = filename
}
dialog := gtk.NewMessageDialog(
window,
gtk.DIALOG_MODAL,
gtk.MESSAGE_INFO,
gtk.BUTTONS_OK,
strings.Join(files, "\n"))
dialog.SetTitle("D&D")
dialog.Response(func() {
dialog.Destroy()
})
dialog.Run()
}
})
vbox.Add(dest)
window.Add(vbox)
window.SetSizeRequest(300, 100)
window.ShowAll()
gtk.Main()
}
开发者ID:JessonChan,项目名称:go-gtk,代码行数:52,代码来源:dnd.go
示例8: openWorld
func (g *GUI) openWorld(p string) {
region, centerX, centerZ, err := readWorld(p)
if err != nil {
dlg := gtk.NewMessageDialog(g.window, gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_WARNING, gtk.BUTTONS_OK, "Could not load world %s:\n%s", p, err.Error())
dlg.Run()
dlg.Destroy()
}
g.menuitemSave.SetSensitive(true)
g.mapw.SetCenter(centerX, centerZ)
g.mapw.SetRegion(region)
}
开发者ID:kch42,项目名称:biomed,代码行数:13,代码来源:main.go
示例9: main
func main() {
gtk.Init(&os.Args)
window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL)
window.SetTitle("GTK Folder View")
window.Connect("destroy", gtk.MainQuit)
swin := gtk.NewScrolledWindow(nil, nil)
store := gtk.NewTreeStore(gdkpixbuf.GetGdkPixbufType(), glib.G_TYPE_STRING)
treeview := gtk.NewTreeView()
swin.Add(treeview)
treeview.SetModel(store.ToTreeModel())
treeview.AppendColumn(gtk.NewTreeViewColumnWithAttributes("pixbuf", gtk.NewCellRendererPixbuf(), "pixbuf", 0))
treeview.AppendColumn(gtk.NewTreeViewColumnWithAttributes("text", gtk.NewCellRendererText(), "text", 1))
for n := 1; n <= 10; n++ {
var iter1, iter2, iter3 gtk.TreeIter
store.Append(&iter1, nil)
store.Set(&iter1, gtk.NewImage().RenderIcon(gtk.STOCK_DIRECTORY, gtk.ICON_SIZE_SMALL_TOOLBAR, "").Pixbuf, "Folder"+strconv.Itoa(n))
store.Append(&iter2, &iter1)
store.Set(&iter2, gtk.NewImage().RenderIcon(gtk.STOCK_DIRECTORY, gtk.ICON_SIZE_SMALL_TOOLBAR, "").Pixbuf, "SubFolder"+strconv.Itoa(n))
store.Append(&iter3, &iter2)
store.Set(&iter3, gtk.NewImage().RenderIcon(gtk.STOCK_FILE, gtk.ICON_SIZE_SMALL_TOOLBAR, "").Pixbuf, "File"+strconv.Itoa(n))
}
treeview.Connect("row_activated", func() {
var path *gtk.TreePath
var column *gtk.TreeViewColumn
treeview.GetCursor(&path, &column)
mes := "TreePath is: " + path.String()
dialog := gtk.NewMessageDialog(
treeview.GetTopLevelAsWindow(),
gtk.DIALOG_MODAL,
gtk.MESSAGE_INFO,
gtk.BUTTONS_OK,
mes)
dialog.SetTitle("TreePath")
dialog.Response(func() {
dialog.Destroy()
})
dialog.Run()
})
window.Add(swin)
window.SetSizeRequest(400, 200)
window.ShowAll()
gtk.Main()
}
开发者ID:arip33,项目名称:go-gtk,代码行数:50,代码来源:treeview.go
示例10: dialogError
func dialogError(win *gtk.Window, err error) {
log.Error(err)
dialog := gtk.NewMessageDialog(
win,
gtk.DIALOG_MODAL,
gtk.MESSAGE_ERROR,
gtk.BUTTONS_CANCEL,
err.Error(),
)
dialog.Response(func() {
dialog.Destroy()
})
dialog.Run()
}
开发者ID:bit4bit,项目名称:remoton,代码行数:15,代码来源:main.go
示例11: mkMenuBar
func (g *GUI) mkMenuBar() *gtk.MenuBar {
menubar := gtk.NewMenuBar()
fileMenu := gtk.NewMenu()
open := gtk.NewImageMenuItemFromStock(gtk.STOCK_OPEN, g.accel)
open.Connect("activate", g.openWorldDlg)
fileMenu.Append(open)
if quickopen, ok := g.mkQuickOpen(); ok {
quickopenItem := gtk.NewMenuItemWithLabel("Open Map")
quickopenItem.SetSubmenu(quickopen)
fileMenu.Append(quickopenItem)
}
g.menuitemSave = gtk.NewImageMenuItemFromStock(gtk.STOCK_SAVE, g.accel)
g.menuitemSave.Connect("activate", g.save)
g.menuitemSave.SetSensitive(false)
fileMenu.Append(g.menuitemSave)
quit := gtk.NewImageMenuItemFromStock(gtk.STOCK_QUIT, g.accel)
quit.Connect("activate", g.exitApp)
fileMenu.Append(quit)
fileMenuItem := gtk.NewMenuItemWithLabel("File")
fileMenuItem.SetSubmenu(fileMenu)
menubar.Append(fileMenuItem)
helpMenu := gtk.NewMenu()
controls := gtk.NewMenuItemWithLabel("Controls")
controls.Connect("activate", func() {
dlg := gtk.NewMessageDialog(g.window, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, "Click to use selected tool.\nMiddle mouse button to move around.")
dlg.Run()
dlg.Destroy()
})
helpMenu.Append(controls)
about := gtk.NewImageMenuItemFromStock(gtk.STOCK_ABOUT, g.accel)
about.Connect("activate", g.aboutDlg)
helpMenu.Append(about)
helpMenuItem := gtk.NewMenuItemWithLabel("Help")
helpMenuItem.SetSubmenu(helpMenu)
menubar.Append(helpMenuItem)
return menubar
}
开发者ID:kch42,项目名称:biomed,代码行数:48,代码来源:main.go
示例12: yesNo
func (b *MsgBuilder) yesNo() bool {
dlg := gtk.NewMessageDialog(nil, 0, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, "%s", b.Msg)
dlg.SetTitle(firstOf(b.Dlg.Title, "Confirm?"))
defer closeDialog(&dlg.Dialog)
return dlg.Run() == gtk.RESPONSE_YES
}
开发者ID:sqweek,项目名称:dialog,代码行数:6,代码来源:dlgs_linux.go
示例13: main
func main() {
gtk.Init(&os.Args)
display = gtk.NewEntry()
window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL)
window.SetTitle("Simple Go Calculator")
window.Connect("destroy", Quit, nil)
// Vertical box containing all components
vbox := gtk.NewVBox(false, 1)
// Menu bar
menubar := gtk.NewMenuBar()
vbox.PackStart(menubar, false, false, 0)
// Add calculator display to vertical box
display.SetCanFocus(false) // disable focus on calcuator display
display.SetText("0")
display.SetAlignment(1.0) //align text to right
vbox.Add(display)
// Menu items
filemenu := gtk.NewMenuItemWithMnemonic("_File")
menubar.Append(filemenu)
filesubmenu := gtk.NewMenu()
filemenu.SetSubmenu(filesubmenu)
aboutmenuitem := gtk.NewMenuItemWithMnemonic("_About")
aboutmenuitem.Connect("activate", func() {
messagedialog := gtk.NewMessageDialog(
window.GetTopLevelAsWindow(),
gtk.DIALOG_MODAL,
gtk.MESSAGE_INFO,
gtk.BUTTONS_OK,
"Simple Go Calculator")
messagedialog.Response(func() {}, nil)
messagedialog.Run()
messagedialog.Destroy()
},
nil)
filesubmenu.Append(aboutmenuitem)
resetmenuitem := gtk.NewMenuItemWithMnemonic("_Reset")
resetmenuitem.Connect("activate", func() { Reset(); display.SetText("0") }, nil)
filesubmenu.Append(resetmenuitem)
exitmenuitem := gtk.NewMenuItemWithMnemonic("E_xit")
exitmenuitem.Connect("activate", Quit, nil)
filesubmenu.Append(exitmenuitem)
// Vertical box containing all buttons
buttons := gtk.NewVBox(false, 5)
for i := 0; i < 4; i++ {
hbox := gtk.NewHBox(false, 5) // a horizontal box for each 4 buttons
for j := 0; j < 4; j++ {
b := gtk.NewButtonWithLabel(string(nums[i*4+j]))
b.Clicked(Input(b), nil) //add click event
hbox.Add(b)
}
buttons.Add(hbox) // add horizonatal box to vertical buttons' box
}
vbox.Add(buttons)
window.Add(vbox)
window.SetSizeRequest(250, 250)
window.ShowAll()
gtk.Main()
}
开发者ID:abiosoft,项目名称:gocalc,代码行数:69,代码来源:gui.go
示例14: main
//.........这里部分代码省略.........
button.Clicked(func() {
//--------------------------------------------------------
// GtkFileChooserDialog
//--------------------------------------------------------
filechooserdialog := gtk.NewFileChooserDialog(
"Sélectionnez le dossier ...",
button.GetTopLevelAsWindow(),
gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER,
gtk.STOCK_OK,
gtk.RESPONSE_ACCEPT)
/*filter := gtk.NewFileFilter()
filter.AddPattern("*.go")
filechooserdialog.AddFilter(filter)*/
filechooserdialog.Response(func() {
println(filechooserdialog.GetFilename())
folder = filechooserdialog.GetFilename() + "/"
filechooserdialog.Destroy()
})
filechooserdialog.Run()
})
buttons.Add(button)
//--------------------------------------------------------
// GtkToggleButton
//--------------------------------------------------------
togglebutton := gtk.NewToggleButtonWithLabel("Lancer la synchronisation")
togglebutton.Connect("toggled", func() {
if togglebutton.GetActive() {
togglebutton.SetLabel("Synchronisation ON")
//Appel fonction synchro avec paramètres
println(folder, champIp.GetText(), champPort.GetText())
sync(folder, champIp.GetText(), champPort.GetText())
} else {
togglebutton.SetLabel("Synchronisation OFF")
}
})
buttons.Add(togglebutton)
framebox2.PackStart(buttons, false, false, 0)
//--------------------------------------------------------
// GtkVSeparator
//--------------------------------------------------------
vsep := gtk.NewVSeparator()
framebox2.PackStart(vsep, false, false, 0)
//--------------------------------------------------------
// GtkMenuItem
//--------------------------------------------------------
cascademenu := gtk.NewMenuItemWithMnemonic("_Fichier")
menubar.Append(cascademenu)
submenu := gtk.NewMenu()
cascademenu.SetSubmenu(submenu)
menuitem = gtk.NewMenuItemWithMnemonic("Q_uitter")
menuitem.Connect("activate", func() {
gtk.MainQuit()
})
submenu.Append(menuitem)
cascademenu = gtk.NewMenuItemWithMnemonic("_Aide")
menubar.Append(cascademenu)
submenu = gtk.NewMenu()
cascademenu.SetSubmenu(submenu)
auteurs := gtk.NewEntry()
auteurs.SetText("Application crée en MCS par Olivier CANO et Adrien CHAPELET")
menuitem = gtk.NewMenuItemWithMnemonic("À_ propos")
menuitem.Connect("activate", func() {
messagedialog := gtk.NewMessageDialog(
button.GetTopLevelAsWindow(),
gtk.DIALOG_MODAL,
gtk.MESSAGE_INFO,
gtk.BUTTONS_OK,
auteurs.GetText())
messagedialog.Response(func() {
messagedialog.Destroy()
})
messagedialog.Run()
})
submenu.Append(menuitem)
//--------------------------------------------------------
// GtkStatusbar
//--------------------------------------------------------
statusbar := gtk.NewStatusbar()
context_id := statusbar.GetContextId("go-gtk")
statusbar.Push(context_id, "En attente de synchronisation")
framebox2.PackStart(statusbar, false, false, 0)
//--------------------------------------------------------
// Event
//--------------------------------------------------------
window.Add(vbox)
window.SetSizeRequest(500, 300)
window.ShowAll()
gtk.Main()
}
开发者ID:adrien3d,项目名称:gobox,代码行数:101,代码来源:gtk2.go
示例15: error
func (b *MsgBuilder) error() {
dlg := gtk.NewMessageDialog(nil, 0, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, "%s", b.Msg)
dlg.SetTitle(firstOf(b.Dlg.Title, "Error"))
defer closeDialog(&dlg.Dialog)
dlg.Run()
}
开发者ID:sqweek,项目名称:dialog,代码行数:6,代码来源:dlgs_linux.go
示例16: errdlg
func errdlg(msg string, params ...interface{}) {
dlg := gtk.NewMessageDialog(nil, gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, msg, params...)
dlg.Run()
dlg.Destroy()
}
开发者ID:kch42,项目名称:biomed,代码行数:5,代码来源:biome_info_editor.go
示例17: reportError
func (g *GUI) reportError(msg string) {
dlg := gtk.NewMessageDialog(g.window, gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, msg)
dlg.Run()
dlg.Destroy()
os.Exit(1)
}
开发者ID:kch42,项目名称:biomed,代码行数:6,代码来源:main.go
示例18: InitializeGUI
//.........这里部分代码省略.........
swin3.SetShadowType(gtk.SHADOW_IN)
textview3 := gtk.NewTextView()
textview3.SetEditable(false)
var start3, end3 gtk.TextIter
buffer3 := textview3.GetBuffer()
buffer3.GetStartIter(&start3)
swin3.Add(textview3)
//framebox2.Add(swin2)
ventanas.Add(swin3)
framebox2.PackStart(ventanas, true, true, 1)
//--------------------------------------------------------
// GtkEntry
//--------------------------------------------------------
entry := gtk.NewEntry()
entry.SetText("Para comenzar, favor de escoger un archivo del directorio....")
//entry.SetSensitive(false)
entry.SetEditable(false)
framebox2.Add(entry)
//--------------------------------------------------------
// GtkHBox
//--------------------------------------------------------
buttons := gtk.NewHBox(false, 1)
//--------------------------------------------------------
// GtkButton //**OPEN FILE****//
//--------------------------------------------------------
button := gtk.NewButtonWithLabel("Elegir archivo...")
var filename string
var isXE bool
button.Clicked(func() {
fmt.Println("button clicked:", button.GetLabel())
messagedialog := gtk.NewMessageDialog(
button.GetTopLevelAsWindow(),
gtk.DIALOG_MODAL,
gtk.MESSAGE_INFO,
gtk.BUTTONS_OK,
"Escoja un archivo .*s o *.x de su directorio")
messagedialog.Response(func() {
fmt.Println("Dialog OK!")
//--------------------------------------------------------
// GtkFileChooserDialog
//--------------------------------------------------------
filechooserdialog := gtk.NewFileChooserDialog(
"Choose File...",
button.GetTopLevelAsWindow(),
gtk.FILE_CHOOSER_ACTION_OPEN,
gtk.STOCK_OK,
gtk.RESPONSE_ACCEPT)
filter := gtk.NewFileFilter()
filter.AddPattern("*.s")
filter.AddPattern("*.x")
filechooserdialog.AddFilter(filter)
filechooserdialog.Response(func() {
/*aqui va el dialogo */
filename = filechooserdialog.GetFilename()
var extension = filepath.Ext(filename)
if extension == ".x" {
isXE = true
} else {
isXE = false
}
fmt.Println(filechooserdialog.GetFilename())
statusbar.Push(context_id, filename)
开发者ID:jatovar,项目名称:sic-xe,代码行数:67,代码来源:guinterface.go
示例19: main
func main() {
gtk.Init(&os.Args)
display = gtk.NewEntry()
display.SetAlignment(1.0)
window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL)
window.SetTitle("Simple Go Calculator")
window.Connect("destroy", Quit)
// Vertical box containing all components
vbox := gtk.NewVBox(false, 1)
// Menu bar
menubar := gtk.NewMenuBar()
vbox.PackStart(menubar, false, false, 0)
// Add calculator display to vertical box
display.SetCanFocus(false) // disable focus on calcuator display
vbox.Add(display)
// Menu items
filemenu := gtk.NewMenuItemWithMnemonic("_File")
menubar.Append(filemenu)
filesubmenu := gtk.NewMenu()
filemenu.SetSubmenu(filesubmenu)
aboutmenuitem := gtk.NewMenuItemWithMnemonic("_About")
aboutmenuitem.Connect("activate", func() {
messagedialog := gtk.NewMessageDialog(
window.GetTopLevelAsWindow(),
gtk.DIALOG_MODAL,
gtk.MESSAGE_INFO,
gtk.BUTTONS_OK,
"Simple Go Calculator")
messagedialog.Response(func() {})
messagedialog.Run()
messagedialog.Destroy()
},
nil)
filesubmenu.Append(aboutmenuitem)
resetmenuitem := gtk.NewMenuItemWithMnemonic("_Reset")
resetmenuitem.Connect("activate", func() { Reset(); display.SetText("0") })
filesubmenu.Append(resetmenuitem)
exitmenuitem := gtk.NewMenuItemWithMnemonic("E_xit")
exitmenuitem.Connect("activate", Quit)
filesubmenu.Append(exitmenuitem)
// Vertical box containing all buttons
buttons := gtk.NewVBox(false, 5)
bmap := map[string]*gtk.Button{}
for i := 0; i < 4; i++ {
hbox := gtk.NewHBox(false, 5) // a horizontal box for each 4 buttons
for j := 0; j < 4; j++ {
b := gtk.NewButtonWithLabel(string(nums[i*4+j]))
b.Clicked(Input(b)) //add click event
hbox.Add(b)
bmap[string(nums[i*4+j])] = b
}
buttons.Add(hbox) // add horizonatal box to vertical buttons' box
}
vbox.Add(buttons)
window.Connect("key-press-event", func(ctx *glib.CallbackContext) bool {
arg := ctx.Args(0)
kev := *(**gdk.EventKey)(unsafe.Pointer(&arg))
c := (string(uint8(kev.Keyval % 0xff)))
if kev.Keyval == gdk.KEY_Return {
c = "="
return true
}
if b, ok := bmap[c]; ok {
Input(b)()
b.GrabFocus()
} else if kev.Keyval == gdk.KEY_Delete {
Reset()
display.SetText("0")
return true
}
return false
})
window.Add(vbox)
window.SetSizeRequest(250, 250)
window.ShowAll()
gtk.Main()
}
开发者ID:mattn,项目名称:gocalc,代码行数:90,代码来源:gui.go
示例20: main
func main() {
var menuitem *gtk.MenuItem
gtk.Init(nil)
window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL)
window.SetPosition(gtk.WIN_POS_CENTER)
window.SetTitle("GTK Go!")
window.SetIconName("gtk-dialog-info")
window.Connect("destroy", func(ctx *glib.CallbackContext) {
println("got destroy!", ctx.Data().(string))
gtk.MainQuit()
}, "foo")
//--------------------------------------------------------
// GtkVBox
//--------------------------------------------------------
vbox := gtk.NewVBox(false, 1)
//--------------------------------------------------------
// GtkMenuBar
//--------------------------------------------------------
menubar := gtk.NewMenuBar()
vbox.PackStart(menubar, false, false, 0)
//--------------------------------------------------------
// GtkVPaned
//--------------------------------------------------------
vpaned := gtk.NewVPaned()
vbox.Add(vpaned)
//--------------------------------------------------------
// GtkFrame
//--------------------------------------------------------
frame1 := gtk.NewFrame("Demo")
framebox1 := gtk.NewVBox(false, 1)
frame1.Add(framebox1)
frame2 := gtk.NewFrame("Demo")
framebox2 := gtk.NewVBox(false, 1)
frame2.Add(framebox2)
vpaned.Pack1(frame1, false, false)
vpaned.Pack2(frame2, false, false)
//--------------------------------------------------------
// GtkImage
//--------------------------------------------------------
dir, _ := path.Split(os.Args[0])
imagefile := path.Join(dir, "../../data/go-gtk-logo.png")
label := gtk.NewLabel("Go Binding for GTK")
label.ModifyFontEasy("DejaVu Serif 15")
framebox1.PackStart(label, false, true, 0)
//--------------------------------------------------------
// GtkEntry
//--------------------------------------------------------
entry := gtk.NewEntry()
entry.SetText("Hello world")
framebox1.Add(entry)
image := gtk.NewImageFromFile(imagefile)
framebox1.Add(image)
//--------------------------------------------------------
// GtkScale
//--------------------------------------------------------
scale := gtk.NewHScaleWithRange(0, 100, 1)
scale.Connect("value-changed", func() {
println("scale:", int(scale.GetValue()))
})
framebox2.Add(scale)
//--------------------------------------------------------
// GtkHBox
//--------------------------------------------------------
buttons := gtk.NewHBox(false, 1)
//--------------------------------------------------------
// GtkButton
//--------------------------------------------------------
button := gtk.NewButtonWithLabel("Button with label")
button.Clicked(func() {
println("button clicked:", button.GetLabel())
messagedialog := gtk.NewMessageDialog(
button.GetTopLevelAsWindow(),
gtk.DIALOG_MODAL,
gtk.MESSAGE_INFO,
gtk.BUTTONS_OK,
entry.GetText())
messagedialog.Response(func() {
println("Dialog OK!")
//--------------------------------------------------------
// GtkFileChooserDialog
//--------------------------------------------------------
filechooserdialog := gtk.NewFileChooserDialog(
"Choose File...",
button.GetTopLevelAsWindow(),
gtk.FILE_CHOOSER_ACTION_OPEN,
gtk.STOCK_OK,
//.........这里部分代码省略.........
开发者ID:JessonChan,项目名称:go-gtk,代码行数:101,代码来源:demo.go
注:本文中的github.com/mattn/go-gtk/gtk.NewMessageDialog函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论