Что самый простой межплатформенный путь состоит в том, чтобы открыться графические диалоговые окна в Python?

Это работает на Вас?

От http://blechie.com/wtilton/archive/2007/08/24/303.aspx

составляет таблицу...

MySQL:

ColumnName ENUM('upload', 'open', 'close', 'delete', 'edit', 'add')
   DEFAULT 'open'

SQL Server:

ColumnName varchar(10) 
   CHECK(ColumnName IN ('upload', 'open', 'close', 'delete', 'edit', 'add')) 
   DEFAULT 'open'

38
задан endolith 13 April 2013 в 02:28
поделиться

8 ответов

Исходя из моего опыта работы с mod_wsgi в Apache, маловероятно, что они вызывают кеширование. Пара вещей, которые стоит попробовать:

  1. Возможно, между вашим компьютером и веб-сервером имеется какой-то прокси-сервер , который соответствующим образом или неправильно кэширует страницы. Иногда интернет-провайдеры запускают прокси-серверы, чтобы уменьшить пропускную способность за пределами своей сети. Не могли бы вы предоставить заголовки HTTP для страницы, которая кэшируется (Firebug может предоставить их вам). Заголовки, которые меня особенно интересуют, включают Cache-Control, Expires, Last-Modified и ETag.
  2. Вы можете опубликовать свой MIDDLEWARE_CLASSES из файла settings.py. Возможно, у вас есть промежуточное программное обеспечение, которое выполняет кэширование за вас.
  3. Можете ли вы найти в своем коде следующие элементы: «загрузить кеш», «django.core.cache» и «cache_page». Команда * grep -R "search" ** будет работать.
  4. Имеет ли файл settings.py (или что-нибудь, что он импортирует вроде "
12
ответ дан 27 November 2019 в 03:29
поделиться

Другая возможность - это модуль tkMessageBox , который явно встроен в стандартную библиотеку и является кроссплатформенным, хотя он еще более уродлив, чем остальные:

import tkMessageBox
tkMessageBox.showinfo('Title','Stuff') 

Tkinter is super ugly

3
ответ дан 27 November 2019 в 03:29
поделиться

@ endolith, re: zenity для Windows.

Привет,

Я перепаковал "Zenity для Windows" и включил правильный файл GTK-темы. Теперь это выглядит намного лучше. :) Теперь он доступен для загрузки: http://www.placella.com/software/zenity/

Снимок экрана:

alt text
(источник: placella.com )

Peace, Руслан

6
ответ дан 27 November 2019 в 03:29
поделиться

pyglet - еще одна альтернатива, хотя она может быть не самой простой. при этом он кроссплатформенный и зависит только от python, поэтому внешних зависимостей нет. сам по себе этот факт может быть достаточной причиной, чтобы использовать его вместо других.

и все, что он может довольно легко обрабатывать мультимедиа, очень удобно, если вы хотите отобразить изображение или видео или что-то еще.

приведенный ниже пример взят из документации ...

#!/usr/bin/python
import pyglet
window = pyglet.window.Window()
label = pyglet.text.Label('Hello, world',
                      font_name='Times New Roman',
                      font_size=36,
                      x=window.width/2, y=window.height/2,
                      anchor_x='center', anchor_y='center')

@window.event
def on_draw():
    window.clear()
    label.draw()

pyglet.app.run()
1
ответ дан 27 November 2019 в 03:29
поделиться

EasyGUI - это единственный файл и предоставляет простой способ работы с диалогами Tkinter, но они по-прежнему уродливые, неродные диалоги Tkinter.

from easygui import msgbox
msgbox('Stuff')

Tkinter is ugly on Ubuntu TKinter is ugly on Windows 7

Его легко установить с помощью:

$ sudo pip3 install --upgrade easygui

Существует репозиторий GitHub и документация очень аккуратная.

Раньше существовал форк под названием EasyGuiTtk , который, к сожалению, больше не доступен.

enter image description here

22
ответ дан 27 November 2019 в 03:29
поделиться

wxPython - лучшая библиотека графического интерфейса Python (IMO), использующая собственные виджеты.

import wx
app = wx.PySimpleApp()
dialog = wx.MessageDialog(None, 'wxPython is awesome!', 'Dialog Box', wx.OK|wx.ICON_INFORMATION)
dialog.ShowModal()
dialog.Destroy()
app.MainLoop()
5
ответ дан 27 November 2019 в 03:29
поделиться

Это невозможно. Если вы хотите простого, вам нужно использовать Tkinter, потому что он включен. Если Tkinter недостаточно хорош, вам придется выбрать и упаковать графический интерфейс для каждой платформы отдельно.

Я предлагаю вам использовать Tkinter и обернуть нужные вам части в класс, который будет еще проще в использовании.

1119530]

-3
ответ дан 27 November 2019 в 03:29
поделиться

Zenity работает под Linux и Windows и может быть вызван напрямую из Python:

import os
os.system('zenity --info --text="Stuff"')

Однако возвращаемые значения из окон вопросов должны быть захвачены для выполнения действий, что является более сложным , и вам нужно научиться взаимодействовать с подпроцессами и т. д.

Его также можно использовать с интерфейсом PyZenity , который упрощает сбор возвращаемых значений:

from PyZenity import InfoMessage
InfoMessage('Stuff')

Я тестировал PyZenity в обоих Ubuntu и Windows XP, и он работает в обоих.

Zenity looks pretty good in Gnome Zenity looks good in KDE, too, suprisingly Zenity in Windows has the wrong GTK theme

Я читал, что Zenity - это только GTK +, но я пробовал его в Gnome и KDE, и он выглядит нативным в обоих. Однако порт на Windows не выглядит родным, потому что он использует неправильную тему GTK?

Существуют также другие программы, такие как KDialog и Xdialog , которые могут быть связаны с аналогичным интерфейсом Python, который может проверять и видеть, какие исполняемые файлы доступны чтобы он обо всем автоматически позаботился? (Для KDialog также существует внешний интерфейс Ruby.)

Я не знаю, работает ли PyZenity и под OS X.

14
ответ дан 27 November 2019 в 03:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: