在 http://www.pygtk.org/ 中找到了一个执行此操作的示例pygtk2tutorial/sec-ManualMenuExample.html
它向您展示了如何创建一个菜单,将其附加到菜单栏,并侦听鼠标按钮单击事件并弹出与创建的菜单完全相同的菜单。
我想这就是你所追求的。
编辑:(添加了进一步的解释以显示如何仅响应鼠标右键事件)
总结一下。
创建一个小部件来监听鼠标事件。在本例中它是一个按钮。
button = gtk.Button("A Button")
创建一个菜单
menu = gtk.Menu()
用菜单项填充它
menu_item = gtk.MenuItem("A menu item")
menu.append(menu_item)
menu_item.show()
让小部件侦听鼠标按下事件,并将菜单附加到它。
button.connect_object("event", self.button_press, menu)
然后定义处理这些事件的方法。正如链接中的示例所述,传递给此方法的小部件是您想要弹出的菜单,而不是正在侦听这些事件的小部件。
def button_press(self, widget, event):
if event.type == gtk.gdk.BUTTON_PRESS and event.button == 3:
#make widget popup
widget.popup(None, None, None, event.button, event.time)
pass
您将看到 if 语句检查是否按下了按钮,如果是的话,它将检查按下了哪个按钮。 event.button 是一个整数值,表示按下了哪个鼠标按钮。所以1是左键,2是中键,3是鼠标右键。通过检查 event.button 是否为 3,您仅响应鼠标右键的鼠标按下事件。
尝试将标题更改为:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
尝试更改
devise_for :users, controllers: { invitations: 'users/invitations' }
为
devise_for :users, controllers: { invitations: 'devise/invitations' }
而不是这个
<link rel="stylesheet" href="style.css">
尝试这个:
<link rel="stylesheet" href="<?php echo base_url();?>">
或者如果你的 css 位于一个名为 css 的目录中:
<link rel="stylesheet" href="<?php echo base_url();?>css/style.css">
你的 Javascript 将以同样的方式工作
好吧,您根本没有给我们任何数据格式的线索。
因此,根据我在你的问题中看到的内容,只有 6 行数据,我建议:
{rows:{row1:'@Scsi_test',row2:'(iotest)',row3:'scsi',row4:'dkdkdkdkdkdkddk',row5:'dkdkdkdkdkdkddk',row6:'dkdkdkdkdkdkddk'}}
也许资源管理器启动可执行文件的方式与直接从控制台运行它的方式有所不同。我认为资源管理器使用 ShellExecute 或ShellExecuteEx 我怀疑从控制台或批处理文件执行应用程序会产生相同的效果。
我将创建一个测试应用程序,尝试一些 ShellExecute 变体并使用不同的参数来查看是否可以重现资源管理器行为,以便尝试诊断传递给 ShellExecute 的哪些参数可能会导致问题。
ShellExecuteEx 页面上有一个有趣的社区注释,可能适用,也可能不适用:ShellExecuteEx 忽略当前输入桌面。它始终使用winsta0\default。相反,请使用 ShellExecute 或 CreateProcess。
我还会调查 AppCompatFlags 是否影响控制台执行应用程序(或查看是否已为您的应用程序设置了任何 AppCompatFlags)。
这里你不需要使用linq,你可以用逻辑来完成
现在只需获取Num_Subjects就像unit1 = 6
DataTable dt = [whole_table];
int counter = Num_Subjects + 1; //7
string colName = "P" + counter.ToString(); //P7
while(dt.Columns.Contains(colName))
{
dt.Columns.Remove(colName);
colName = "P" + (++counter).ToString()
}
最后你我们得到一个表最多P6列其余的列将被删除。
我认为您可能正在开发一个控制台项目并尝试制作一个 Windows 应用程序!
如果是这样,请从
您将得到以下输出:
Rails 对待连接表的方式与您想象的有些不同。从 DBA 的角度来看,您的联接表完全没问题,但对于 Rails 来说,真正的联接表只有引用列。一旦添加新列,Rails 就会将连接表视为新实体。
(就我个人而言,一开始我对此感到沮丧,但我很快就意识到这没什么大不了的)
因此,要解决您的问题,您需要重命名您的表,比方说 FinanceBalances。另外,让我们将FinishedBalance 更改为amount。
然后,在您的 Sale.rb 文件中进行如下所示的关联:
has_many :financeBalances
has_many :financeCompanies, :through => :financeBalances
对 FinanceCompany 执行相同的操作。
您的代码将如下所示:
<% for financeBalance in sale.financeBalances %>
<%= "£" + financeBalance.amount + " from " %>
<%= financeBalance.financeCompany.name %>
<% end %>
如果您确实希望 financeCompany.financedBalance
正常工作,您可以在 FinanceCompany 模型中定义一个方法并编写返回您想要的查询。
如果您的表具有唯一的主键(...将取决于设计...),那么这是需要计算条目出现次数的可行替代方案:
DELETE FROM people as A
WHERE deleted = 1
AND EXISTS (SELECT '1'
FROM people as B
WHERE B.id <> A.id
AND A.firstName = B.firstName
AND A.lastName = B.lastName)
这可能比计算行具有稍好的性能。请注意,此查询可能会遇到与上一个答案中存在的相同问题;具体来说,如果有两个或多个“已删除”行,并且没有“未删除”行,则它们都可能会被删除(留下任何行!)。如果查询的目的只是在存在“未删除”等效行时删除“已删除”行,请添加 AND B.deleted = 0
作为内部 WHERE< 的一部分/代码> 子句。
如果它是 Air 应用程序,则有应用程序配置文件 yourapp-app.xml
标题部分的某个位置定义了 Flex 框架版本。只需将其更新到至少 10.2.0.0
不,但你可以这样做:
enum E {
e1,e2
}
interface I{
Enum getEnum();
}
interface I2 {
EnumSet getEnums();
}
class I2Impl implements I2 {
@Override public EnumSet getEnums() {
return EnumSet.allOf(E.class);
}
}
public class Main {
public static void main(String[] args) {
System.out.println(new IImpl().getEnum());
System.out.println(new I2Impl().getEnums());
}
}
确保当视图(重新)出现时,您将其设置为第一响应者。
-(void)viewDidAppear:(BOOL)animated
{
[self becomeFirstResponder];
}
它需要位于 viewDidAppear 而不是 viewWillAppear 中
新闻快报:在 mysql 中,每次更新行中的任何其他列时,
TIMESTAMP
列总是使用now()
进行更新 - 这是一个这种数据类型的特意特征。另一方面,DATETIME 没有这种奇怪的行为 - 这是完全正常的。
答案:
创建
必须是DATETIME
,但由于这个bug,你还需要一个触发器,像这样:News flash: In mysql,
TIMESTAMP
columns are always updated withnow()
every time any other column in the row is updated - this is a deliberate feature of this datatype.DATETIME
on the other hand does not have this weird behaviour - it's completely normal.The answer:
created
must beDATETIME
, but due to this bug, you also need a trigger, like this:一张表中的两个 MySQL 时间戳列