我试图用Qt5实现简单的标签界面。我使用QTabWidget
并将QToolBar
放置在其标签中,然后将QAction
添加到QToolBar
s。
这有效但会导致以下问题:只有在其父标签处于活动状态时,任何操作仍然可以访问。如果我尝试使用键盘快捷方式当前"隐形"行动,我将没有成功。由于没有菜单等,标签是唯一放置动作的地方。
以下是我如何将元素添加到工具栏中:
QTabWidget *ribbon = new QTabWidget(window);
QToolBar *tool_bar_game = new QToolBar(tab_game);
QAction *action_go_to_next_level = new QAction(window);
action_go_to_next_level->setText(QApplication::translate("Window", "&Next", 0));
action_go_to_next_level->setIcon(QIcon::fromTheme("go-last"));
action_go_to_next_level->setShortcut(QApplication::translate("Window", "PgDown", 0));
ribbon->addTab(tool_bar_game, tr("Game"));
tool_bar_game->addAction(action_go_to_next_level);
和截图:
即使当前未打开操作的父标签,如何使用快捷方式访问操作?
答案 0 :(得分:1)
我并不感到惊讶,这不起作用,实际上你尝试在隐藏的小部件上使用快捷方式。如果这样做会很困惑。
明显的解决方法是将快捷方式而不是def Loader():
wb = Workbook.caller()
file_path = Range(1,(1,1)).value
file=pd.read_excel(file_path, sheetname='Sheet1')
df = pd.DataFrame(file)
return df
def analyze(df):
Range('C1').value=df.describe()
# Use it this way
dataFrame = Loader()
analyze(dataframe)
添加到始终处于活动状态的窗口小部件中。就个人而言,我建议窗口。
如果没有测试代码,我相信这应该有效:
class Loader(object):
def __init__(self):
wb = Workbook.caller()
file_path = Range(1,(1,1)).value
file=pd.read_excel(file_path, sheetname='Sheet1')
self.df = pd.DataFrame(file)
# 1) If you want to analyse when you create the object
# call analyze() here
self.analyze()
def analyze(self):
Range('C1').value=self.df.describe()
loader = Loader()
# 2) Otherwise you can keep control of analyze()
# and call it whenever you want, like this:
loader.analyze()