0

固定サイズ (例: 200x200) でスクロールバーのない、webkit に基づくシンプルな webview が必要です。ウィンドウマネージャーなしでXを使用しています。

次の Python コードを試しました。

import gtk 
import webkit 

view = webkit.WebView() 

sw = gtk.ScrolledWindow()
sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_NEVER)
sw.add(view)

win = gtk.Window(gtk.WINDOW_TOPLEVEL)
win.add(sw) 
win.set_default_size(200, 200) 
win.show_all()

view.open("http://www.blackle.com") 

gtk.main()

スクロールバーは表示されませんが、表示されません。

また、別のパスをたどり、次を使用してGTKのスクロールバーを完全に削除しようとしました~/.gtkrc-2.0:

style "custom-scrollbar-style"
{
  GtkScrollbar::slider_width = 0
  GtkScrollbar::min-slider-length = 0
  GtkScrollbar::activate_slider = 0
  GtkScrollbar::trough_border = 0
  GtkScrollbar::has-forward-stepper = 0
  GtkScrollbar::has-backward-stepper = 0
  GtkScrollbar::stepper_size = 0
  GtkScrollbar::stepper_spacing = 0
  GtkScrollbar::trough-side-details = 0
  GtkScrollbar::default_border = { 0, 0, 0, 0 }
  GtkScrollbar::default_outside_border = { 0, 0, 0, 0 }
}
widget_class "*Scrollbar" style "custom-scrollbar-style"

これでも、スクロールバーがあるウィンドウの両側に細い白い線が表示されます。

何か案は?

4

3 に答える 3

0

さて、これが問題です。スクロールバーは必要ありませんが、Gtk.ScrolledWindow を作成して WebKit.WebView のコンテナーにします。スクロールバーが必要ない場合は、Gtk.Scrollable を実装していないコンテナー (Gtk.Grid など) の中に入れてください。スクロールバーはまったく表示されません。いくつかの欠点:

  1. メイン ウィンドウは、コンテンツの最小幅と高さを超えてサイズを縮小しません。
  2. ビューのコンテンツのサイズが変更された場合、(ビューの表示方法に関するすべての詳細を制限しない限り) ウィンドウも現在のサイズに従います。
  3. WebKit.WebView ウィジェットには、Gtk.Widget.set_size_request のようなものはなく、その内容に従います。ところで、Gtk.Widget.set_default_size() はウィジェットの固定サイズを作成せず、最初に表示されるときにのみサイズを設定します。
于 2014-07-21T16:28:06.270 に答える
0

以下は私のために働く

class PREview(object):
    def __init__(self, project_directory):
        # Make the HTML viewable area
        self.wv = webkit.WebView()
        self.wf = self.wv.get_main_frame()
        self.wf.connect("scrollbars-policy-changed", self.on_webkit_webframe_scrollbars_policy_changed)

def on_webkit_webframe_scrollbars_policy_changed(self, widget):
    return True # to stop propagation

そしてメインプログラムで...

self.out_scroll = gtk.ScrolledWindow()
self.out_scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_NEVER)
self.PV = PREview(self)
self.out_scroll.add(self.PV.wv)
于 2015-12-14T16:28:08.930 に答える