小编BPS*_*BPS的帖子

如何修复错误Xlib.error.DisplayConnectionError:无法连接显示":0":b'No协议指定\n'

我正在用python3和XLib制作一些程序.

在我的电脑上使用Ubuntu 14.04一切正常但是当我尝试在我的笔记本中运行我的应用程序时手动安装Xorg我得到例外:

Xlib.error.DisplayConnectionError: Can't connect to display ":0": b'No protocol specified\n'
Run Code Online (Sandbox Code Playgroud)

在线:

self.__display = Xlib.display.Display()
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?如何解决这个问题,它可以在每个Linux上运行?

编辑:

这看起来不像X11的重复:运行gnome应用程序作为另一个用户.在我的两台计算机上,我有相同的用户和组,所以这个问题可能与缺乏运行我的程序的权限无关.

它必须是X配置错误的东西.

python xlib

8
推荐指数
2
解决办法
5276
查看次数

如何在python和GTK 3中编写自定义Gtk.CellRenderer?

我必须用按钮编写自己的单元格渲染器,我想出了这个:

#!/usr/bin/env python3
from gi.repository import Gtk

class CellRendererButton(Gtk.CellRenderer):
    def __init__(self):
        Gtk.CellRenderer.__init__(self)

    def get_size(self, widget, cell_area):
        buttonHeight = cell_area.height
        buttonWidth = buttonHeight
        return (0, 0, buttonWidth, buttonHeight)

    def render(self, window, widget, background_area, cell_area, expose_area, flags):
        style = widget.get_style()
        x, y, buttonWidth, buttonHeight = self.get_size()
        style.paint_box(window, widget.get_state(), Gtk.SHADOW_ETCHED_OUT, expose_area, widget, None, 0, 0, buttonWidth, buttonHeight)

class MyWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title = 'T', default_width = 200, default_height = 300)
        self.connect('destroy', self.__onDestroy)
        self.__createGUI()
        self.show_all()

    def __createGUI(self):
        box = Gtk.Box(orientation = Gtk.Orientation.VERTICAL)
        listStore …
Run Code Online (Sandbox Code Playgroud)

python gtk pygtk pygobject gtk3

6
推荐指数
1
解决办法
2491
查看次数

如何在一行(PowerShell)中设置环境变量并执行命令?

如何在PowerShell中在一行中设置环境变量的值并执行命令?

我有这个:

PGPASSWORD=db_pass psql -U db_user -d db_name -a -h localhost -f some.sql
Run Code Online (Sandbox Code Playgroud)

它在 Linux 中运行良好。

如何将上述转换为适用于 Windows Server 2012 - Windows 10 的 PowerShell 命令?

我试过:

SET "PGPASSWORD=db_pass" & "C:\Program Files (x86)\PostgreSQL\9.4\bin\psql.exe" -U postgres -a -d db_name -h localhost -f some.sql
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:“& 保留供将来使用...” - Windows 2012。

bash powershell environment-variables

6
推荐指数
1
解决办法
4932
查看次数

如何在 GtkEntry 中选择文本

我有 GtkEntry 的对话窗口。我想在对话框窗口对用户可见后立即选择条目中的所有文本。我试过这个,但它不起作用,我看不到任何选择:

static void OnEntryShow(GtkWidget *entry, gpointer user_data)
{
     gtk_editable_select_region(GTK_EDITABLE(entry), 0, -1);
}
...
gtk_entry_set_text(GTK_ENTRY(myEntry), "text");
g_signal_connect(myEntry, "show", G_CALLBACK(OnEntryShow), NULL);
if (gtk_dialog_run(GTK_DIALOG(myDialog)) == GTK_RESPONSE_OK)
...
Run Code Online (Sandbox Code Playgroud)

在 GtkDialog 可见后,如何在 GtkEntry 中选择文本?

c gtk gtkentry

5
推荐指数
1
解决办法
2652
查看次数

如何在 pyGTK 中为小部件设置默认样式?

我想为我的应用程序中的所有小部件设置默认样式。我找到了这个页面并读到有set_default_style()功能。问题是我在任何地方都找不到它。

在女巫包/模块/类中我可以找到这个功能吗?有没有其他方法可以避免使用gtk.Widget.set_style()方法为每个小部件设置样式?

python gtk pygtk

4
推荐指数
1
解决办法
1267
查看次数

如何从流加载图像文件到gtk.gdk.Pixbuf?

我有一个文件picture.jpg,我正在读它记忆

f = open('picture.jpg', 'rb')
pic = f.read()
f.close()
Run Code Online (Sandbox Code Playgroud)

如何将pic转换为gtk.gdk.Pixbuf?我知道有gdk_pixbuf_new_from_stream()但似乎缺少pyGTK:/

python pygtk

3
推荐指数
1
解决办法
1229
查看次数

如何在tkinter中发出事件?

我有用python3和tkinter模块编写的简单应用程序.我想编写自定义小部件,需要发送自定义事件.

为什么下面的示例代码不起作用?

#!/usr/bin/env python3

from tkinter import *

class MyWidget(Listbox):
    def __init__(self, master, *args, **kwargs):
        super().__init__(master, *args, **kwargs)

        # ===================
        # error:  _tkinter.TclError: only one event specification allowed
        self.bind('<<ListboxSelect>>', lambda e: self.event_generate('MyEvent'))
        # ===================


class App(Tk):
    def __init__(self):
        super().__init__()
        w = MyWidget(self)
        w.bind('MyEvent', lambda e: print('It\'s working'))
        w.pack()

        w.insert(END, 'ddddddd')


if __name__ == '__main__':
    app = App()
    app.mainloop()
Run Code Online (Sandbox Code Playgroud)

python tk-toolkit tkinter python-3.x

3
推荐指数
1
解决办法
620
查看次数

如何在Python中获取手册页内容?

即时运行Linux,我想将一些手册页导入我的应用程序.

我想出了这个:

p = subprocess.Popen(('man %s' % manTopic,), shell = True, stdout = subprocess.PIPE)
stdout, stderr = p.communicate()
if stdout:
Run Code Online (Sandbox Code Playgroud)

但它不好,男人只显示第一页并阻止我的应用程序

如何使用Python获取手册页?

python linux subprocess manpage

2
推荐指数
1
解决办法
2487
查看次数

如何将行追加到 Gtk.ListStore?

我试图将我的应用程序从 python2.7 pyGTK 切换到 Python3 和 pyGObject,并且很难将行附加到我的 Gtk.ListStore :/

这段代码:

#!/usr/bin/env python3

from gi.repository import Gtk

listStore = Gtk.ListStore(str)
itr = Gtk.TreeIter()
listStore.append(itr)
listStore.set_value(itr, 0, 'Its working')
Run Code Online (Sandbox Code Playgroud)

总是给我错误:

Traceback (most recent call last):
  File "./test.py", line 7, in <module>
    listStore.append(itr)
  File "/usr/lib/python3/dist-packages/gi/overrides/Gtk.py", line 1017, in append
    return self._do_insert(-1, row)
  File "/usr/lib/python3/dist-packages/gi/overrides/Gtk.py", line 1008, in _do_insert
    row, columns = self._convert_row(row)
  File "/usr/lib/python3/dist-packages/gi/overrides/Gtk.py", line 850, in _convert_row
    if len(row) != n_columns:
TypeError: object of type 'TreeIter' has no len()
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事?如何将新行追加到 Gtk.ListStore 中?

python pygtk pygobject gtk3

2
推荐指数
1
解决办法
3767
查看次数

有没有办法在tkinter.ttk.Notebook中为标签添加关闭按钮?

我想为每个标签添加关闭按钮tkinter.ttk.Notebook.我已经尝试添加图像并对点击事件做出反应,但遗憾的BitmapImage是没有bind()方法.

我该如何修复此代码?

#!/usr/binenv python3

from tkinter import *
from tkinter.ttk import *


class Application(Tk):
    def __init__(self):
        super().__init__()
        notebook = Notebook(self)
        notebook.pack(fill=BOTH, expand=True)
        self.img = BitmapImage(master=self, file='./image.xbm')
        self.img.bind('<Button-1>', self._on_click)
        notebook.add(Label(notebook, text='tab content'), text='tab caption', image=self.img)

    def _on_click(self, event):
        print('it works')

app = Application()
app.mainloop()
Run Code Online (Sandbox Code Playgroud)

image.xbm

#define bullet_width 11
#define bullet_height 9
static char bullet_bits = {
    0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00
}
Run Code Online (Sandbox Code Playgroud)

python tkinter

1
推荐指数
1
解决办法
3191
查看次数

如何从 ttk.Notebook 选项卡获取小部件对象?

我有 ttk.Notebook 类的笔记本小部件。在这个笔记本中,我添加了许多标签:

notebook.add(child=my_object, text='my tab')

如何获取选项卡对象而不是选项卡名称?

更新 1

所以,有儿童词典。好的,带来下一个问题。

我真正想做的是在 Notebook 中操作活动选项卡的对象。所以我有这个:

notebook.children[notebook.select().split('.')[2]])
Run Code Online (Sandbox Code Playgroud)

但它看起来很丑。不幸的是, select() 返回的小部件名称与 children[] 中的小部件名称格式不完全相同。在这种情况下,是否有任何方法可以将一种格式可靠地转换为另一种格式,或者 split() 永远不会失败?

这是问题的演示:

#!/usr/bin/env python3

from tkinter import *
from tkinter.ttk import *


class App(Tk):
    def __init__(self):
        super().__init__()
        notebook = Notebook(self)
        notebook.add(child=Frame(notebook), text='tab1')
        notebook.add(child=Frame(notebook), text='tab2')
        notebook.add(child=Frame(notebook), text='tab3')
        notebook.pack()

        print('Tabs are: ', notebook.children.keys())
        print('Active tab: ', notebook.select())
        print(type(notebook.children[notebook.select().split('.')[2]]))

App().mainloop()
Run Code Online (Sandbox Code Playgroud)

python tk-toolkit tkinter

0
推荐指数
1
解决办法
3347
查看次数

为什么ON CASCADE DELETE不起作用?

我想在一个查询中删除2个表中的行,所以我这样做:

DELETE FROM form_questionnaire;
Run Code Online (Sandbox Code Playgroud)

这是从中删除所有行form_questionnaire但在其中留下行questionnaire.为什么行questionnaire,如果有不被删除ON DELETE CASCADEform_questionnaire.questionnaire_id

我的桌子

CREATE TABLE questionnaire(
    id INTEGER AUTO_INCREMENT PRIMARY KEY NOT NULL,
    content JSON,
    creator VARCHAR(50) NOT NULL,
    created TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE form_questionnaire(
    form_id INTEGER,
    questionnaire_id INTEGER,
    FOREIGN KEY(form_id) REFERENCES form(id),
    FOREIGN KEY(questionnaire_id) REFERENCES questionnaire(id) ON DELETE CASCADE
) ENGINE=INNODB;
Run Code Online (Sandbox Code Playgroud)

数据库服务器

MySQL 5.7.21-20

mysql sql

0
推荐指数
1
解决办法
55
查看次数