I'm new at the python learning, so I can't quite understand some things. So I'm trying to make a small desktop app, and I didn't want to make all the design with a code, so I have found the thing like wxFormBuilder, which is very suits me. The problem is when I have made all the "design" of the window, it looks fine in the wxFormBuilder, but when I copy all the code in PyCharm and launch the program - everything is working perfectly fine, exept no one wxStaticText is showing. I really can't understand what is the problem, because I have used Sizers and all these things, even tried to modify the most of code that relates to text labels, but still no text. I'm applying screenshots from PyCharm and wxFormBuilder of how does it look. Also there is the code:
# -*- coding: utf-8 -*-
import wx
import wx.xrc
class MainWindow(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"FinanceC", pos=wx.DefaultPosition, size=wx.Size(700, 389),
style=wx.CAPTION | wx.CLOSE_BOX | wx.MINIMIZE_BOX | wx.SYSTEM_MENU | wx.TAB_TRAVERSAL)
self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
self.SetForegroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW))
self.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW))
fgSizer3 = wx.FlexGridSizer(2, 2, 0, 0)
fgSizer3.SetFlexibleDirection(wx.BOTH)
fgSizer3.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
bSizer18 = wx.BoxSizer(wx.VERTICAL)
self.m_staticText1 = wx.StaticText(self, wx.ID_ANY,
u"Выберите html-файл экспортированных сообщений из телеграма",
wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText1.SetFont(
wx.Font(14, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "Century Gothic"))
bSizer18.Add(self.m_staticText1, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.TOP, 20)
fgSizer5 = wx.FlexGridSizer(2, 2, 0, 0)
fgSizer5.SetFlexibleDirection(wx.BOTH)
fgSizer5.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
bSizer32 = wx.BoxSizer(wx.VERTICAL)
self.html_path = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(540, -1), 0)
self.html_path.Enable(False)
bSizer32.Add(self.html_path, 0, wx.ALL, 5)
fgSizer5.Add(bSizer32, 1, wx.ALIGN_LEFT | wx.LEFT | wx.RESERVE_SPACE_EVEN_IF_HIDDEN | wx.RIGHT | wx.TOP, 10)
bSizer311 = wx.BoxSizer(wx.VERTICAL)
self.button_html = wx.Button(self, wx.ID_ANY, u"Открыть", wx.DefaultPosition, wx.Size(105, -1), 0)
self.button_html.SetFont(
wx.Font(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Century Gothic"))
bSizer311.Add(self.button_html, 0, 0, 5)
fgSizer5.Add(bSizer311, 1, wx.ALIGN_RIGHT | wx.BOTTOM | wx.RESERVE_SPACE_EVEN_IF_HIDDEN | wx.RIGHT | wx.TOP, 15)
bSizer18.Add(fgSizer5, 1, wx.ALIGN_CENTER_HORIZONTAL | wx.SHAPED, 5)
self.m_staticText11 = wx.StaticText(self, wx.ID_ANY, u"Укажите путь сохранения отчета",
wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText11.Wrap(-1)
self.m_staticText11.SetFont(
wx.Font(14, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "Century Gothic"))
bSizer18.Add(self.m_staticText11, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.TOP, 0)
fgSizer51 = wx.FlexGridSizer(2, 2, 0, 0)
fgSizer51.SetFlexibleDirection(wx.BOTH)
fgSizer51.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
bSizer321 = wx.BoxSizer(wx.VERTICAL)
self.xlsx_path = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(540, -1), 0)
self.xlsx_path.Enable(False)
bSizer321.Add(self.xlsx_path, 0, wx.ALL, 5)
fgSizer51.Add(bSizer321, 1, wx.ALIGN_LEFT | wx.LEFT | wx.RESERVE_SPACE_EVEN_IF_HIDDEN | wx.RIGHT | wx.TOP, 10)
bSizer3111 = wx.BoxSizer(wx.VERTICAL)
self.button_xlsx = wx.Button(self, wx.ID_ANY, u"Обзор", wx.DefaultPosition, wx.Size(105, -1), 0)
self.button_xlsx.SetFont(
wx.Font(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Century Gothic"))
bSizer3111.Add(self.button_xlsx, 0, 0, 5)
fgSizer51.Add(bSizer3111, 1, wx.ALIGN_RIGHT | wx.BOTTOM | wx.RESERVE_SPACE_EVEN_IF_HIDDEN | wx.RIGHT | wx.TOP,
15)
bSizer18.Add(fgSizer51, 1, wx.EXPAND, 5)
bSizer6 = wx.BoxSizer(wx.VERTICAL)
self.button_start = wx.Button(self, wx.ID_ANY, u"Начать", wx.DefaultPosition, wx.Size(100, 30), 0)
self.button_start.SetFont(
wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "Century Gothic"))
bSizer6.Add(self.button_start, 0, wx.ALL, 5)
bSizer18.Add(bSizer6, 1, wx.ALIGN_CENTER_HORIZONTAL, 5)
bSizer7 = wx.BoxSizer(wx.VERTICAL)
self.text_convert = wx.StaticText(self, wx.ID_ANY, u"Конвертируем html-файл в таблицу xlsx...",
wx.DefaultPosition, wx.DefaultSize, 0)
self.text_convert.Wrap(-1)
self.text_convert.SetFont(
wx.Font(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Century Gothic"))
bSizer7.Add(self.text_convert, 0, wx.ALL | wx.RESERVE_SPACE_EVEN_IF_HIDDEN, 5)
self.text_convert.Hide()
self.text_delete = wx.StaticText(self, wx.ID_ANY, u"Удаляем ненужные данные...", wx.DefaultPosition,
wx.DefaultSize, 0)
self.text_delete.Wrap(-1)
self.text_delete.SetFont(
wx.Font(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Century Gothic"))
bSizer7.Add(self.text_delete, 0, wx.ALL | wx.RESERVE_SPACE_EVEN_IF_HIDDEN, 5)
bSizer18.Add(bSizer7, 1, wx.EXPAND | wx.RESERVE_SPACE_EVEN_IF_HIDDEN, 5)
self.text_delete.Hide()
bSizer71 = wx.BoxSizer(wx.VERTICAL)
self.text_calc = wx.StaticText(self, wx.ID_ANY, u"Производим расчеты...", wx.DefaultPosition, wx.DefaultSize, 0)
self.text_calc.Wrap(-1)
self.text_calc.SetFont(
wx.Font(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Century Gothic"))
bSizer71.Add(self.text_calc, 0, wx.ALL | wx.RESERVE_SPACE_EVEN_IF_HIDDEN, 5)
self.text_calc.Hide()
self.m_staticText11111 = wx.StaticText(self, wx.ID_ANY,
u"Готово! Рабочий файл сохранен по указанному пути под именем \"",
wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText11111.Wrap(-1)
self.m_staticText11111.SetFont(
wx.Font(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Century Gothic"))
bSizer71.Add(self.m_staticText11111, 0, wx.ALL | wx.RESERVE_SPACE_EVEN_IF_HIDDEN, 5)
bSizer18.Add(bSizer71, 1, wx.EXPAND | wx.RESERVE_SPACE_EVEN_IF_HIDDEN, 5)
fgSizer3.Add(bSizer18, 1, 0, 5)
self.m_staticText11111.Hide()
self.SetSizer(fgSizer3)
self.Layout()
self.Centre(wx.BOTH)
# Connect Events
self.button_html.Bind(wx.EVT_BUTTON, self.button_html_click)
self.button_xlsx.Bind(wx.EVT_BUTTON, self.button_xlsx_click)
self.button_start.Bind(wx.EVT_BUTTON, self.button_start_click)
def __del__(self):
pass
# Virtual event handlers, override them in your derived class
def button_html_click(self, event):
event.Skip()
def button_xlsx_click(self, event):
event.Skip()
def button_start_click(self, event):
event.Skip()
app = wx.App()
frame = MainWindow(None)
frame.Show()
app.MainLoop()
I tried to create just clear Form in wxFormBuilder with just the text on it, and open it in PyCharm - it worked. I also tried to change in my main form the style of font, size, different parameters, tried to edit different parameters in code, still nothing. I also tried to change the position of wxStaticText and size of it, it changes in PyCharm and there is more free whitespace when i make that (and this free space is right where it must be), but still no text showing. Also tried using english language in text - still the same. Remarkable, that i have tried to replace wxStaticText with wxTextCtrl, and it worked - the text was showing, but the element is not quite that I need.
I have figure it out what was the problem. Default color of text was white, and the background of form is white. In code for every StaticText you need to add:
self.m_staticText1.SetForegroundColour('black')So it will appear.