Nano Hash - криптовалюты, майнинг, программирование

Как сделать wxPython MessageDialog, который позволяет пользователю копировать/вставлять в него текст?

MessageDialog, который я создал в wxPython, не интерактивен и не позволяет пользователю выбирать и копировать текст в нем. Есть ли другой подобный виджет wxPython, который я мог бы использовать, или что-то, что я мог бы сделать с моим существующим MessageDialog? Ниже приведен код, который у меня есть до сих пор:

box = wx.MessageDialog(parent, "This is my text", "This is my title", style=wx.ICON_ERROR|wx.OK)

Благодарю вас! Я ценю вашу помощь.


  • Итак, если я выберу текстовый элемент управления в этом диалоговом окне и нажму Ctrl + V или правую кнопку мыши, что произойдет? Кроме того, на какой ОС вы это пробуете, какая версия Python и версия wxPython? Вы используете классический или Феникс? Кроме того, что вы имеете в виду, говоря it is not interactive? 27.07.2017
  • В MSW стандартный диалог поддерживает Ctrl+C для копирования его текста. Почему-то почти никто не знает об этой функции, хотя она восходит к Windows 3.11 AFAIR (а возможно, и раньше). 28.07.2017
  • Вы могли бы использовать ScrolledMessageDialog я полагаю. 28.07.2017

Ответы:


1

Хотя вы не можете захватить весь MessageDialog, вы, безусловно, можете захватить текст сообщения. Вам нужно щелкнуть по тексту, чтобы выделить его мышью, или щелкнуть правой кнопкой мыши и выбрать select all. Выделив текст, щелчок правой кнопкой мыши дает вам возможность copy, как показано на этом снимке экрана.
Предостережения: в Linux и при использовании wxpython 3.0 classic

введите здесь описание изображения

Если вы хотите скопировать и вставить, возможно, вам понадобится TextEntryDialog

import wx
app = wx.App()
dlg = wx.TextEntryDialog(None,"Copy and Paste below","heading","This is my text")
dlg.SetSize((600,180))
if dlg.ShowModal() == wx.ID_OK:
    text = dlg.GetValue()
    print text
dlg.Destroy()
28.07.2017

2

Использование wx.TE_READONLY для TextCtrl создает поле, в котором текст нельзя редактировать, но можно скопировать и вставить.

Пример:

wx.TextCtrl(self.panel, -1, outStr , style=wx.TE_BESTWRAP|wx.TE_READONLY)
03.08.2017
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..