0

ツールボタンのコードは次のとおりです(ツールバー内):

self.mainWindow.mainBox.mainToolbar.overviewRadio = Gtk.RadioToolButton(stock_id=Gtk.STOCK_ABOUT)
self.mainWindow.mainBox.mainToolbar.overviewRadio.set_label("Overview")
# self.mainWindow.mainBox.mainToolbar.overviewRadio.show_label() (No such function)
self.mainWindow.mainBox.mainToolbar.overviewRadio.connect("clicked", self.on_overviewRadio_clicked)

出力のスクリーンショットを次に示します。

スクリーンショット

ご覧のとおり、ラベルはありません。ラベルを表示するように設定するにはどうすればよいですか?

興味のある人のための私のコードは次のとおりです。

#! /usr/bin/env python3

###    Copyright (c) 2013 - Marco Scannadinari

###    This program is free software: you can redistribute it and/or modify
###    it under the terms of the GNU General Public License as published by
###    the Free Software Foundation, either version 3 of the License, or
###    (at your option) any later version.
###
###    This program is distributed in the hope that it will be useful,
###    but WITHOUT ANY WARRANTY; without even the implied warranty of
###    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
###    GNU General Public License for more details.
###
###    You should have received a copy of the GNU General Public License
###    along with this program.  If not, see <http://www.gnu.org/licenses/>.

# gcustomiser - A visual customiser for the GNOME desktop using GTK+.

from gi.repository import Gtk
import sys

class gcustomiser:
    def __init__(self):
        ## Main window
        self.mainWindow = Gtk.Window(Gtk.WindowType.TOPLEVEL)
        self.mainWindow.set_size_request(512, -1)
        self.mainWindow.set_resizable(False)
        self.mainWindow.set_title("GNOME Customiser")
        self.mainWindow.connect("destroy", self.on_mainWindow_destroy)

        ## Main box
        self.mainWindow.mainBox = Gtk.VBox(
            homogeneous = False,
            spacing = 8)

        ## Toolbar
        self.mainWindow.mainBox.mainToolbar = Gtk.Toolbar()
        self.mainWindow.mainBox.mainToolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR)
        self.mainWindow.mainBox.mainToolbar.set_style(Gtk.ToolbarStyle.BOTH)

        ## Left toolbar separator
        self.mainWindow.mainBox.mainToolbar.leftSeparator = Gtk.SeparatorToolItem(draw = False)
        self.mainWindow.mainBox.mainToolbar.leftSeparator.set_expand(True)

        ## Overview toggle button
        self.mainWindow.mainBox.mainToolbar.overviewRadio = Gtk.RadioToolButton(Gtk.STOCK_ABOUT)
        self.mainWindow.mainBox.mainToolbar.overviewRadio.set_is_important(True)
        self.mainWindow.mainBox.mainToolbar.overviewRadio.set_label("Overview")
        self.mainWindow.mainBox.mainToolbar.overviewRadio.connect("clicked", self.on_overviewRadio_clicked)

        ## Basic settings toggle button
        self.mainWindow.mainBox.mainToolbar.basicRadio = Gtk.RadioToolButton(label = "Overview")
        self.mainWindow.mainBox.mainToolbar.basicRadio.set_label("Overview")
        a = self.mainWindow.mainBox.mainToolbar.basicRadio.get_label()
        print(a)
        ## Right toolbar separator
        self.mainWindow.mainBox.mainToolbar.rightSeparator = Gtk.SeparatorToolItem(
            draw = False)
        self.mainWindow.mainBox.mainToolbar.rightSeparator.set_expand(True)

        ## Add everything to self.mainWindow
        self.mainWindow.add(self.mainWindow.mainBox)

        self.mainWindow.mainBox.pack_start(
            self.mainWindow.mainBox.mainToolbar,
            expand = False,
            fill = True,
            padding = 0)

        self.mainWindow.mainBox.mainToolbar.add(self.mainWindow.mainBox.mainToolbar.leftSeparator)
        self.mainWindow.mainBox.mainToolbar.add(self.mainWindow.mainBox.mainToolbar.overviewRadio)
        self.mainWindow.mainBox.mainToolbar.add(self.mainWindow.mainBox.mainToolbar.rightSeparator)

    def on_mainWindow_destroy(self, *args):
        print("destroy: mainWindow")
        print("\nGoodbye.\n")

        Gtk.main_quit()

        sys.exit()

    def on_overviewRadio_clicked(self, *args):
        print("clicked: mainWindow.mainBox.mainToolbar.overviewRadio")

    def show_all(self):
        self.mainWindow.show_all()

window = gcustomiser()
window.show_all()

Gtk.main()
4

3 に答える 3

1

以下を使用できます。

self.mainWindow.mainBox.mainToolbar.overviewRadio.show_all()

ただし、次のことを検討することをお勧めします。

self.mainWindow.show_all()

これにより、mainWindow() のすべてのウィジェットが表示されます。通常、メイン UI を定義し、すべてのウィジェットを表示したい場合に使用します。

于 2013-03-01T01:33:28.813 に答える
0

Gladeインターフェースエディタを使用して、非常に簡単な方法でやりたいことを実行することをお勧めします。ToolButtonのラベルはデフォルトで表示されるプロパティであり、ウィジェットにラベルラベルが付いている場合は常に、アイコンの下にテキストを表示する必要があります。それでも、 show_labelshow_labelが関数として定義されていないことをこれ以上指定しないでgtk.RadioToolButtonください。さらに、ここに残したこれらのリンクを確認することをお勧めします。

http://valadoc.org/gtk+-3.0/Gtk.RadioToolButton.html.content.tpl%20http://nullege.com/codes/search/gtk.RadioToolButton.set_labelhttp://pascal.rigaud4.free _ fr / Programming / GTK / GTKMMDoc / GTKMM / www.gtkmm.org / docs / gtkmm-2.4 / docs / reference / html / classGtk_1_1RadioToolButton.html

于 2013-02-28T20:05:07.517 に答える
0

問題は、ツールバー スタイルを設定しなかったことです。これを行うには、次を使用する必要があります。

self.mainWindow.mainBox.mainToolbar.set_style(Gtk.ToolbarStyle.*)

ラベルをアイコンの下ではなく横に表示したい場合は、ラジオボタンを重要にする必要があります。

self.mainWindow.mainBox.mainToolbar.set_style(Gtk.ToolbarStyle.BOTH_HORIZ)
self.mainWindow.mainBox.mainToolbar.overviewRadio.set_is_important(True)

のリストについては、Python インタープリターでGtk.ToolbarStyle使用するか、このページに移動してください。dir(Gtk.ToolbarStyle)

于 2013-03-01T16:50:23.020 に答える